【问题标题】:How to find all sub directories containing a particular file and then grep another file in those sub-directories?如何查找包含特定文件的所有子目录,然后在这些子目录中 grep 另一个文件?
【发布时间】:2020-08-10 16:12:02
【问题描述】:

我有一个包含 100 个子目录的文件夹。

dir1 dir2 dir3 dir4 ...

每个子目录都包含一个文件simv.log

此外,每个目录都包含 - FAILED.txtPASSED.txt 文件。

我想在存在FAILED.txtsimv.log 文件中grep 模式“ABCD”。

我可以使用以下命令找到所有包含 FAILED.txt 的目录: find . -name "FAILED.txt" -print "%h\n"

如何进一步使用此输出在这些目录的 simv.log 文件中 grep ABCD?

【问题讨论】:

    标签: linux shell awk grep xargs


    【解决方案1】:
    find . -name "FAILED.txt" -printf "%h/simv.log\0" | xargs -0 grep -F ABCD
    

    应该做的伎俩

    【讨论】:

    • 这不起作用。即使文件存在,我也会从管道命令中得到“:没有这样的文件或目录”。
    • @Amit128 测试时工作正常。
    • @Amit128 听起来您有一些包含 FAILED.txt 但不包含 simv.log 的目录。
    • 它有效,对不起我之前的评论。我使用的命令中有错字。非常感谢!
    【解决方案2】:
    find . -name "FAILED.txt"   -printf "%h/simv.log\n"  | while read line ; do  grep ABCD -nr $line ; done;
    

    【讨论】:

    猜你喜欢
    • 2017-04-13
    • 2020-09-04
    • 2021-02-08
    • 2021-01-05
    • 1970-01-01
    • 1970-01-01
    • 2016-05-25
    • 2011-02-21
    • 2021-11-28
    相关资源
    最近更新 更多