Как составить запрос GREP по двум условиям?

Всем привет,
Подскажите как составить команду GREP для следующей ситуации:
В каталоге есть три файла, в них есть текст:
а1 - денис
а2 - денис, максим
а3 - максим
Как написать команду, чтобы найти имя файла где встречается в самом файле два имени денис, максим (эти имена могут находится в разных строках, в разной последовательности)
Т.е по идеи вывести должен только файл а2.
  • Вопрос задан
  • 1557 просмотров
Решения вопроса 1
1. grep умеет читать ТОЛЬКО строки !! и не умеет читать с переносом, так что содержимое должно быть именно в 1 строке.
grep -rlE \(денис.*максим\|максим.*денис\) .
-r рекурсивно
-l имя файла а не содержимое
-E регулярки
Но в товоем случае греп сильно хорошо подойдет поскольку тебе нужно искать во всем файле, да и оптимальным такой вариант не назвать.
Так работать будет !
grep -l денис *$(grep -rl максим)
Так будет по реще хотя прийдется строить два цикла.
В первом мы ищем имена файлов в которых есть максим
создав массив файлов мы передаем его грепу денис и ищем опять еж имена файлов.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы