如何排除 find 、 exec 和 grep 中的文件类型?

dex*_*ous 2 grep find

我试图找出使用以下标志的文件 - TRACE_WANTED”。但是,我不希望 find 在 .c 和 .h 中搜索此标志。如何发出命令以从*.c 和 *.h 文件。

这是我正在使用的典型命令 -

find ./ -iname  *.c -exec grep -iHrn  TRACE_WANTED {} \;
Run Code Online (Sandbox Code Playgroud)

Joh*_*024 6

GNUgrep能够从其内置的递归搜索中排除 globs。尝试:

grep -iHrn  --exclude='*.c' --exclude='*.h' TRACE_WANTED
Run Code Online (Sandbox Code Playgroud)

这将从当前目录开始递归搜索,就像您的find命令一样。它排除所有*.c*.h文件。