我想查找包含在Linux/MinGW/Cygwin中的源文件(*.c,*.cpp,*.h),并在所有子目录中递归查找。
我的基本想法是使用find
和grep
。但是,构建一个可以检查给定文件名是 *.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\)?$"