如何列出所有源文件 (*.c、*.cpp、*.h)

如何列出所有源文件 (*.c、*.cpp、*.h)

我想查找包含在Linux/MinGW/Cygwin中的源文件(*.c,*.cpp,*.h),并在所有子目录中递归查找。

我的基本想法是使用findgrep。但是,构建一个可以检查给定文件名是 *.c、*.cpp 还是 *.h 的正则表达式并不容易。你能帮帮我吗?

答案1

这应该有效:

find Linux/MinGW/Cygwin -name '*.c' -o -name '*.cpp' -o -name '*.h'

答案2

您可以使用:

find . -regex '.*/.*\.\(c\|cpp\|h\)$'

答案3

我会用:

find . -regex '.*\.\(c\|cpp\|h\)$' -print

答案4

您可以使用稍微简单一点的正则表达式:

find . -type f -regex ".*\.[ch]\(pp\)?$"

相关内容