使用awk捕获多行输出的第一行?

时间:2011-06-10 22:00:55

标签: bash scripting sed awk system-administration

我有这个输出,它是与fcgi:

的grep匹配的所有进程的PID
# ps ax | grep fcgi | cut -f1 -d' '
21065
21066
21067
21068
21069
21070
24801

我想删除第一个数字(即21065),以便将其传递给kill函数以终止父进程(父进程作为第一个PID返回)。

关于如何做到这一点的任何想法?

3 个答案:

答案 0 :(得分:5)

如果可以避免,请不要使用ps ax | grep...来终止进程。见here

而是使用pidof

答案 1 :(得分:3)

使用:

获取pid号

PARENT_PID=`ps ax | grep fcgi | cut -f1 -d' ' | head -1`

直接杀人:

kill `ps ax | grep fcgi | cut -f1 -d' ' | head -1`

答案 2 :(得分:0)

您无需自己跳过psgrepcutheadkill的{​​{3}}。这就是pkill的用途。

pkill fcgi

另请参阅pgrep以供将来参考。