2012-09-06 31 views
0

我有一個文件名clfile.me,它看起來像這樣;將grep輸出與文件中的值匹配

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來過濾原始文件。

有什麼想法?

感謝 克里斯

+0

請編輯您的文章以包含必需的樣本輸出。太難以說出你的意思了,「現在需要保持T F ...」祝你好運。 – shellter

+0

按照要求,我添加了更多的細節......上面的工作,但只顯示了匹配grep命令的PID。我希望能夠從原始文件中看到匹配的PID和TRUE或FALSE值。我想我問的是如何通過符合我的grep命令的PID來過濾原始文件。 – cbm64

回答

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