나는 거대한 디렉토리 계층 구조에서 "WSFY321.c" 파일을 찾고 있습니다.
보통 나는GNU 찾기: find . -name "WSFY321.c"
하지만 대소문자는 모르겠습니다. 대문자일 수도 있고, 소문자일 수도 있고, 둘이 혼합되어 있을 수도 있습니다.
이 파일을 찾는 가장 쉬운 방법은 무엇입니까?
그것보다 더 좋은 것이 있나요 find . | grep -i "WSFY321.c"
?
답변1
최신 버전의 GNU에는 대소문자를 구분하지 않는 이름 검색을 위한 플래그가 find
있습니다 .-iname
find . -iname "WSFY321.c"
답변2
이 기능과 함께 GNU find 또는 다른 버전의 find를 사용하십시오.
find . -iname 'WSFY321.c'
다른 버전의 경우:
find . -name '[Ww][Ss][Ff][Yy]321.[Cc]'
또는 느리지만 입력하기 쉬운 절충안입니다.
find . -name '????321.c' | grep -i '/WSFY[^/]*$'
또는 zsh에서:
print -rl -- **/(#i)WSFY321.c
답변3
macOS를 위한 두 가지 솔루션:
GNU 사용 find
:
brew install findutils --with-default-names
# restart Terminal
find . -iname 'WSFY321.c'
GNU 사용 sed
:
brew install gnu-sed --default-names
# restart Terminal
find -name "$(sed 's|\([[:alpha:]]\)|[\U\1\L\1]|g' <<<'WSFY321.c')"