有没有办法限制输出,比如说
ps aux | grep word
,让每个进程显示在单独的单身的线?
我需要这个,因为我的进程描述占用了很多行,而使用上述命令列出它们时,我没有很好的可视性。我很高兴只看到每个进程表示的第一行。
答案1
实际上,每个过程已经显示在一行上,这就是为什么grep
会显示那么多信息。
如果您愿意牺牲“COMMAND”列提供的细节量ps aux
,您可以像这样修剪输出:
ps aux | awk '/word/ {print $1"\t"$2"\t"$3"\t"$4"\t"$9"\t"$11}'
查找awk
包含图案“单词”的行并打印:
USER、PID、%CPU、%MEM、START 和 COMMAND 列中的第一个字符串(以空格分隔),全部以 TAB('\t') 分隔
答案2
您可能会发现该pstree
命令很有用。它以树形图的形式列出所有进程。
答案3
当ps aux
输出直接到终端时,该命令会将命令部分限制为屏幕的宽度。
当输出通过管道传输到命令时,行为会有所不同,但通常宽度不受限制。如果您想以相同的方式限制它,可以使用该命令:
ps aux --witdh ${COLUMNS:-80} | grep word
当然,如果word
不是在显示的字符中而是在截断的字符中,那么这是行不通的。
以下是一些替代方案:
ps aux | awk '/word/ {print substr($0,1,'${COLUMNS:-80}')}'
ps -up $(pgrep -f word|tr '\n' ','| sed 's/,$//')