Unix найти: несколько типов файлов - PullRequest
60 голосов
/ 25 августа 2011

Я хочу запустить find -name с несколькими типами файлов.Например.

 find -name *.h,*.cpp

Возможно ли это?

Ответы [ 7 ]

86 голосов
/ 25 августа 2011
$ find . -name '*.h' -o -name '*.cpp'

Чтобы найти эту информацию на странице man, введите man find и выполните поиск операторов, введя /OPERATORS и нажмите ввод.

. не является строго необходимым для GNU find, но необходимо в Unix. Кавычки важны в любом случае, и если их не использовать, файлы текущего типа появятся в текущем каталоге.

В некоторых системах (например, Cygwin) круглые скобки необходимы для включения набора расширений:

$ find . \( -name '*.h' -o -name '*.cpp' \)
18 голосов
/ 25 августа 2011

Вот что я использую

find . \( -name "*.h" -o -name "*.cpp" \) -print
10 голосов
/ 25 августа 2011
find . -name "*.h" -or -name "*.cpp"

у меня работает.

8 голосов
/ 16 апреля 2015
find . -name '*.h' -o -name '*.cc'`

работает для поиска файлов.

find . \( -name '*.h' -o -name '*.cc' \)`

работает для выполнения команд над ними

find . \( -name '*.h' -o -name '*.cc' \) -exec egrep "#include" {} \; -print | egrep "^\."
4 голосов
/ 30 сентября 2015

Вы также можете использовать утилиту -regex:

find -E . -iregex ".*\.(js|jsx|html|htm)"

Помните, что регулярное выражение ищет полный абсолютный путь:

Для объяснения этогоregex с контрольными примерами check: https://regex101.com/r/oY1vL2/1

-E (как флаг ДО пути) включает расширенные (современные) регулярные выражения.

Это для BSD find (MacOSX 10.10.5)

1 голос
/ 26 апреля 2018

Это то, что я использую. Я настоятельно рекомендую аргумент "-regextype posix-extended".

find . -type f -iname "*.log" -o -iname "*.gz" 
find . -type f \( -name "*.gz" -o -name "*.log" \)
find . -type f -regex '.*\(\.gz\|\.log\)'
find . -type f -regextype posix-extended -regex '.*.(log|gz)'
0 голосов
/ 14 мая 2019
find ./ -name *.csv -o \\-name *.txt|xargs grep -i new
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...