Linux / MinGW / Cygwin에 포함되어 있고 모든 하위 디렉토리에서 재귀 적으로 소스 파일 (* .c, * .cpp, * .h)을 찾고 싶습니다.
내 기본 아이디어는 find
및을 사용 하고 grep
있습니다. 그러나 주어진 파일 이름을 확인할 수있는 정규식을 작성하는 것은 * .c, * .cpp 또는 * .h가 쉽지 않습니다. 당신이 나를 도울 수 있습니까?
답변
이것은 작동해야합니다 :
find Linux/MinGW/Cygwin -name '*.c' -o -name '*.cpp' -o -name '*.h'
답변
find -regex '.*/.*\.\(c\|cpp\|h\)$'
답변
나는 사용할 것이다 :
find . -regex '.*\.\(c\|cpp\|h\)$' -print
답변
빠르고 더러운 디렉토리 이름을 피하십시오 :
find . -type f -name *.[c\|h]
답변
약간 더 간단한 정규식을 사용할 수 있습니다.
find . -type f -regex ".*\.[ch]\(pp\)?$"
답변
나는 bash에서도 작동하는 mac pro를 사용합니다. 그러나 명령 줄을 입력 할 때마다 :
find -name
불법 옵션이라고합니다. 그래서 나는 그것을 다음과 같이 단순화했다.
find *.c *.cpp *.h
그리고 실제로 작동한다는 것을 알았습니다!