逐行获取程序的pid

逐行获取程序的pid

我可以通过发出如下命令来找到程序实例的 pid:

pidof avconv

这给了我结果

16616 16283 16279 16198 16175 16035 15073 14049 4922

但是我怎样才能逐行输出相同的结果,例如:

16616 
16283 
16279 
16198 
16175 
16035 
15073 
14049 
4922

答案1

您可以按照@Sobrique的建议使用 来解析输出sed,或者使用tr

pidof avconv | tr ' ' '\n'

另一种方法是使用pgrep

$ pgrep avconv16616 
16283 
16279 
16198 
16175 
16035 
15073 
14049 

答案2

你一开始就可以这样......

ps -C avconv -o pid=

答案3

您始终可以使用sed插入一些换行符

pidof avconv | sed 's/ /\n/g'

尽管也许一个更大的问题是 - 为什么你需要将它们放在不同的行上?也许有更合适的答案。

答案4

如果您在 Linux 系统上使用pidof,则可以使用其选项告诉实用程序使用换行符而不是空格作为分隔符-d

pidof -d $'\n' /usr/sbin/apache2

相关内容