我在查找时遇到了一些麻烦。这没有达到我的预期:
find . -iname "*.hh" -or -iname "*.h" -exec grep -inH "IDENTIFIER" {} \;
我希望它在* .hh和* .h文件中都是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" {} \;
答案 0 :(得分:3)
你可以说:
find . \( -iname "*.hh" -o -iname "*.h" \) -exec ...
找到* .hh和* .h文件。
答案 1 :(得分:1)
您也可以使用grep的正则表达式选项:
find . -regex '.*\.hh?' -exec grep -inH "IDENTIFIER" {} \;