Je recherche le fichier "WSFY321.c" dans une énorme hiérarchie de répertoires.
Habituellement, j'utiliserais GNU find : find . -name "WSFY321.c"
Mais je ne connais pas le cas, il pourrait être en majuscules, en minuscules ou un mélange des deux.
Quelle est la façon la plus simple de trouver ce fichier?
Y a-t-il quelque chose de mieux que find . | grep -i "WSFY321.c"
?
Les versions récentes de GNU find
ont un -iname
flag, pour les recherches de noms non sensibles à la casse.
find . -iname "WSFY321.c"
Avec GNU find, ou d'autres versions de find qui l'ont:
find . -iname 'WSFY321.c'
Avec d'autres versions:
find . -name '[Ww][Ss][Ff][Yy]321.[Cc]'
Ou un compromis plus lent mais plus facile à taper:
find . -name '????321.c' | grep -i '/WSFY[^/]*$'
Ou en zsh:
print -rl -- **/(#i)WSFY321.c
Deux solutions pour macOS:
Utilisation de GNU find
:
brew install findutils --with-default-names
# restart Terminal
find . -iname 'WSFY321.c'
Utilisation de GNU sed
:
brew install gnu-sed --default-names
# restart Terminal
find -name "$(sed 's|\([[:alpha:]]\)|[\U\1\L\1]|g' <<<'WSFY321.c')"