shell如何将下面的命令行输出转成两条?

如下,ps -ef | grep tproxy | grep -v "grep" 命令将获取tproxy进程信息,

user00    1561     1  0 Apr03 ?        00:01:00 ./tproxy --id=1.1.0.6 --port=6001 --conf-file=../etc/proxy.xml --sys-file=../etc/tproxy_sys.xml --env-type=new_version --daemon start
user00    1566     1  0 Apr03 ?        00:01:00 ./tproxy --id=1.1.1.6 --port=6002 --conf-file=../etc/proxy.xml --sys-file=../etc/tproxy_sys.xml --env-type=new_version --daemon start

是如上图所示的两条输出,现在需要进一步将其分割成两条数据。

ps -ef | grep tproxy | grep -v "grep" |awk -F "n" '{print $1}'

并不能满足要求,和上面输出的还是一样的。求解怎么解决这个问题不甚感激。
我刚明白了一点,awk是按行读取的,因此这个输出没问题,先输出第一行再第二行。
那要怎么做才能满足需求呢。
阅读 2.6k
4 个回答

So, what do you want to do ? what is your demand ?

我猜你是不是在找 xargs 命令?
因为不明白 需要进一步将其分割成两条数据 是什么意思, 因此也不想写太多, 不妨查查看 xargs 是否就是你想要的.

我猜你想用n做分隔符,然后失败了?
ps -ef | grep tproxy | grep -v "grep" |awk 'BEGIN{FS="n"}{print $1}'
试试这个方法设置分隔符

新手上路,请多包涵

ps -ef | grep tproxy | grep -v "grep" |head -n 1

ps -ef | grep tproxy | grep -v "grep" | tail -n 1

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题