команда grep для нескольких файлов? - PullRequest
0 голосов
/ 29 марта 2011

без необходимости написания сценария оболочки, мне интересно, есть ли способ вывести список файлов на основе соответствия более чем одному критерию?

Я знаю, что могу сделать:

ls ./files/ | grep samp

, чтобы получить список всех файлов, которые содержат «samp» в имени файла ... Но есть ли способ сказать «перечислить все файлы, которые соответствуют« samp » или » examp "?

Я уже понял, что

ls ./files/ | grep samp examp 

не работает ...

Ответы [ 4 ]

2 голосов
/ 29 марта 2011

Использовать найти - это гораздо мощнее для таких вещей, например ::100100

find ./files -name \*samp\* -o -name \*examp\*
1 голос
/ 29 марта 2011

Вы можете использовать |:

ls ./files/ | grep -E 'samp|examp'

-E позволяет использовать расширенные (современные) регулярные выражения.Если ваша версия grep не поддерживает такое поведение, вам нужно экранировать |:

ls ./file/ | grep 'samp\|examp'
0 голосов
/ 29 марта 2011

Вы можете использовать команду find.

find ./files -name \*samp\* -o -name \*examp\*

-o означает «или».Вы можете использовать -iname вместо -name для сопоставления без учета регистра.

0 голосов
/ 29 марта 2011
ls ./files/ | grep -esamp -eexamp 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...