Versões recentes do GNU find
possuem um -iname
flag, para pesquisas de nomes que não diferenciam maiúsculas de minúsculas.
find . -iname "WSFY321.c"
Estou procurando o arquivo "WSFY321.c" em uma hierarquia de diretórios enorme.
Normalmente eu usaria o GNU encontrado : find . -name "WSFY321.c"
Mas eu não sei o caso, pode ser em maiúsculas, minúsculas ou uma mistura de ambos.
Qual é a maneira mais fácil de encontrar esse arquivo?
Existe algo melhor que find . | grep -i "WSFY321.c"
?
Com o GNU find ou outras versões do find que o possuem:
find . -iname 'WSFY321.c'
Com outras versões:
find . -name '[Ww][Ss][Ff][Yy]321.[Cc]'
Ou um compromisso mais lento, mas mais fácil de digitar:
find . -name '????321.c' | grep -i '/WSFY[^/]*$'
Ou em zsh:
print -rl -- **/(#i)WSFY321.c
Duas soluções para o macOS:
Usando o GNU find
:
brew install findutils --with-default-names
# restart Terminal
find . -iname 'WSFY321.c'
Usando o GNU sed
:
brew install gnu-sed --default-names
# restart Terminal
find -name "$(sed 's|\([[:alpha:]]\)|[\U\L]|g' <<<'WSFY321.c')"
Tags find