将grep输出与文件中的值匹配

时间:2012-09-06 12:49:04

标签: grep aix pid

我有一个文件名clfile.me,看起来像这样;

44433430,"FALSE"
33095934,"TRUE"
41549968,"TRUE"
37945528,"FALSE"
18284764,"FALSE"
15007934,"FALSE"

数字是AIX PID。我有一个命令将PID与正在运行的进程匹配。

while read p; do
    ps -ef | grep $p | grep 'myproram' | grep -v grep | awk "{ print \$2 }" >> clout.me
done < clfile.me

以上工作但只显示了与grep命令匹配的PID。我希望能够从原始文件中看到匹配的PID和TRUE或FALSE值。我想我问的是如何通过与我的grep命令匹配的PID过滤原始文件。

有什么想法吗?

由于 克里斯

1 个答案:

答案 0 :(得分:1)

我花了一会儿,但我知道了!

cat /dev/null > clout.me
while read p; do
    x=$(awk '{ print $1 }')
    ps -ef | grep x | grep 'myprogram' | grep -v grep | awk "{ print \$2 }" >> clout.me
done < clfile.me

awk 'FNR==NR{A[$1]=1;next} A[$1]' clout.me clfile.me