piping grep в список файлов

-5

Пример строки в файле:

Populating response|boy|sessionType=Random

Пример строки в другом файле:

Populating response|boyhood|sessionType=Random

Есть несколько файлов в каталоге с аналогичным выходом.
Мне нужно перечислить все файлы, содержащие строку с мальчиком (а не с детства)

Как перечислить файлы с помощью grep (или любой альтернативы).

grep -l "Populating response.*boy" *.txt | grep -v "boyhood" grep -l "Populating response.*boy" *.txt | grep -v "boyhood", очевидно, не сработает

спросил(а) 2021-01-25T11:30:49+03:00 4 месяца, 2 недели назад
1
Решение
116

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

grep "boyhood" *.txt -vl | xargs grep "Populating response.*boy" -l

Сначала фильтр будет удален, исключив файлы "boyhood" и сохранив только имена файлов.

Затем для каждого результата он будет разбирать его снова и печатать их, если они совпадают.

ответил(а) 2021-01-25T11:30:49+03:00 4 месяца, 2 недели назад
45

Использовать grep -lF '|boy|' * grep -lF '|boy|' *

-l перечисляют только файлы, которые соответствуют.
-F искать -F строку |boy| ,
* искать все файлы в текущем каталоге.

ответил(а) 2021-01-25T11:30:49+03:00 4 месяца, 2 недели назад
45

grep -inIEr 'boy' *.txt | grep -v hood

заменить *.txt с типом файла

ответил(а) 2021-01-25T11:30:49+03:00 4 месяца, 2 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема