5

Я часто нахожу себя в поисках множества кода с использованием grep, чтобы определить, что я ищу. Иногда я получаю список файлов немного длиннее, чем я ожидал. На данный момент я хочу выполнить второй grep, но только поиск по файлам, возвращенным первым поиском grep. Есть ли способ сделать это? Я в основном хочу дать перекрестную ссылку на два поиска grep и получить обратно только те файлы, в которых есть оба результата.

1 ответ1

9
grep -lZ "first string" * | xargs -0 grep -l "second string"
  • Первый grep вернет файлы, содержащие first string .

  • Второй grep будет делать то же самое для second string , но поверх результатов первого grep .

  • Аргумент -Z для grep и аргумент -0 для xargs работают вместе, чтобы включить поддержку имен файлов с пробелами.


Редактировать - благодаря Ajedi32:

xargs позволяет использовать результаты одной команды в качестве аргументов другой.

Из Википедии статьи xargs «ы, xargs это команда на Unix и большинство Unix-подобных операционных систем , используемых для построения и выполнения командной строки из стандартного ввода.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .