Я ищу файл "WSFY321.c" в огромной иерархии каталогов.
Обычно я использую GNU find : find . -name "WSFY321.c"
но я не знаю, в каком регистре это может быть прописная, строчная или сочетание обоих.
Какой самый простой способ найти этот файл?
Есть ли что-то лучше, чем find . | grep -i "WSFY321.c"
?
-type f
флага, чтобы не беспокоиться о его имени, если индекс является каталогом. Но это педантичные уровни оптимизации ...find . -iname \*WSFY321.c\* -type f
С помощью GNU find или других версий find, у которых это есть:
С другими версиями:
Или компромисс, который медленнее, но легче набрать:
Или в зш:
источник
grep
версия фильтрации только верхний регистр, и я не понимаю '[^ /]' .. (не /)*
после/
версии bash. Я имел в видуgrep -i
. Я использую,[^/]*
а не.*
так, чтобы не перехватывать файлы в каталогах, название которых начинается сWSFY
.shopt -s extglob nocaseglob globstar; printf '%s\n' **/WSFY321.c
... Я полагаю , что именно поэтому его называют NoCase Glob : он работает только в контексте Glob (или так кажется).Два решения для macOS:
Используя GNU
find
:Используя GNU
sed
:источник