【问题标题】:Match grep output to values in file将 grep 输出与文件中的值匹配
【发布时间】:2012-08-31 07:09:48
【问题描述】:

我有一个像这样的文件名 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 过滤原始文件。

有什么想法吗?

谢谢 克里斯

【问题讨论】:

  • 请编辑您的帖子以包含所需的示例输出。很难说出“现在需要保持 T F ...”是什么意思。祝你好运。
  • 根据要求,我添加了更多细节......上面的工作但只显示了与 grep 命令匹配的 PID。我希望能够从原始文件中看到匹配的 PID 和 TRUE 或 FALSE 值。我想我在问如何通过与我的 grep 命令匹配的 PID 过滤原始文件。

标签: grep aix pid


【解决方案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

【讨论】:

    猜你喜欢
    • 2012-06-04
    • 2011-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-13
    • 1970-01-01
    • 1970-01-01
    • 2014-06-24
    相关资源
    最近更新 更多