【发布时间】:2011-02-15 07:30:32
【问题描述】:
假设我正在跑步$: ps au
在 shell 提示符下,并且想要在其中选择第 5 个条目的第 2 个字段,无论它是哪个进程。我该怎么做?
【问题讨论】:
假设我正在跑步$: ps au
在 shell 提示符下,并且想要在其中选择第 5 个条目的第 2 个字段,无论它是哪个进程。我该怎么做?
【问题讨论】:
使用 awk。
awk 'NR==6 { print $2 }'
第 6 条记录,因为您需要跳过标题。
【讨论】:
如果您不想使用awk 或等效的perl 或ruby 命令,您还可以使用更多低级工具:
ps au | head -6 | tail -1 | cut -d ' ' -f 2
【讨论】:
cut 不会像 awk 那样折叠空白,但认为“空字段”是绝对正常的,你似乎有这样的。并不是说向链中添加另一个 tr -d ' ' 很困难,但是在某些时候,剩下的简单性并不多。
在“ps au”输出中,第二个字段是进程ID;你可以通过告诉 ps 你需要什么来直接提取它:
ps a -o pid=
那么你只需要输出第五行:
ps a -o pid= | sed '5!d'
【讨论】: