回答:
GNUの最近のバージョンにfind
は、-iname
大文字と小文字を区別しない名前検索用のフラグがあります。
find . -iname "WSFY321.c"
find . -iname \*WSFY321.c\* -type f
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
grep
..(ない/)バージョンのみ大文字を濾過し、I「は[^ /]」を理解していない
*
後/
。私が意味したgrep -i
。名前がで始まるディレクトリ内のファイルをキャッチしないように、と[^/]*
いうよりも使用.*
しWSFY
ます。
shopt -s extglob nocaseglob globstar; printf '%s\n' **/WSFY321.c
...私はそれが呼ばれる理由ですと仮定しNOCASE グロブ:それは唯一のグロブのコンテキストで動作します(またはので、それはそうです)。
macOSの2つのソリューション:
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')"
-type f
フラグを使用してさらに数ティックを削ることができるため、inodeがディレクトリである場合に名前を調べる必要はありません。しかし、それは最適化の