【问题标题】:Grep a file output from another set of grep/awk command pipegrep 从另一组 grep/awk 命令管道输出的文件
【发布时间】:2020-08-07 01:45:32
【问题描述】:

我有一个 linux 管道命令,它提供如下文件输出,

grep "tsmcN" $PROJECT_CDL_INC | awk '{print $2}'

/p/tech/n5p/tech-prerelease/v0.9.0_pre.10/tsmcN5/cdl_addon/tsmcN5.cdl

我想进一步通过管道输出这个文件以 grep 中的一些内容。但是当我尝试这个时,

grep "tsmcN" $PROJECT_CDL_INC | awk '{print $2}'|grep dio

grep dio /p/tech/n5p/tech-prerelease/v0.9.0_pre.10/tsmcN5/cdl_addon/tsmcN5.cdl

.SUBCKT ndio_12_mac PLUS MINUS
.SUBCKT ndio_12_ntn_mac PLUS MINUS
.SUBCKT ndio_hia12_mac PLUS MINUS
.SUBCKT ndio_hia12_ntn_mac PLUS MINUS
.SUBCKT ndio_mac PLUS MINUS
.SUBCKT pdio_12_mac PLUS MINUS
.SUBCKT pdio_hia12_mac PLUS MINUS
.SUBCKT pdio_mac PLUS MINUS

我知道我错过了一些琐碎的事情,但我自己找不到答案。 问候, 艾伦

【问题讨论】:

    标签: linux unix awk grep


    【解决方案1】:

    grep "tsmcN" $PROJECT_CDL_INC | awk '{print $2}' 似乎正在输出文件名列表。然后,您似乎想在每个文件中 grep dio within,但您却再次在文件 names 中grep。

    试试这个:

    awk '/tsmcN/ "$PROJECT_CDL_INC" |
    xargs grep dio
    

    【讨论】:

    • 是的。我错过了 xargs 的正确用法。我仍然需要格式化输出,但内容在那里。谢谢,艾伦。
    【解决方案2】:

    使用这个命令:

    grep "tsmcN" $PROJECT_CDL_INC | awk '{print $2}'|grep dio
    

    您实际上是在为dio 查找字符串/p/tech/n5p/tech-prerelease/v0.9.0_pre.10/tsmcN5/cdl_addon/tsmcN5.cdl

    如果您要获取该文件名,然后将该文件 grep 用于 dio:

    grep "tsmcN" $PROJECT_CDL_INC | cat `awk '{print $2}'` | grep dio
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-12
      • 2018-11-17
      • 2017-06-15
      • 2017-01-12
      • 1970-01-01
      相关资源
      最近更新 更多