Comando Find: como ignorar maiúsculas e minúsculas?

151

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" ?

    
por Nicolas Raoul 20.02.2012 / 03:35

3 respostas

195

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"
    
por 20.02.2012 / 04:01
38

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
    
por 20.02.2012 / 04:09
1

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')"
    
por 25.04.2017 / 22:05

Tags