【问题标题】:find expressions with exec用 exec 查找表达式
【发布时间】:2013-11-28 20:50:54
【问题描述】:

我在查找时遇到了一些麻烦。这没有达到我的预期:

find . -iname "*.hh" -or -iname "*.h" -exec grep -inH "IDENTIFIER" {} \;

我希望它在 *.hh 和 *.h 文件中都可以 grep,但它只 grep -iname "*.h" 的结果。我求助于使用 xargs 来解决它。

find . -iname "*.hh" -or -iname "*.h" | xargs grep -inH "IDENTIFIER"

但是有没有办法使用 -exec 而无需像这样写两次:

find . -iname "*.hh" -exec grep -inH "IDENTIFIER" {} \; -or -iname "*.h" -exec grep -inH "IDENTIFIER" {} \;

【问题讨论】:

    标签: bash find


    【解决方案1】:

    你可以说:

    find . \( -iname "*.hh" -o -iname "*.h" \) -exec ...
    

    同时查找 *.hh 和 *.h 文件。

    【讨论】:

      【解决方案2】:

      您也可以使用 grep 的正则表达式选项来做到这一点:

      find . -regex '.*\.hh?' -exec grep -inH "IDENTIFIER" {} \;

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-09-12
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多