1

Возможный дубликат:
Как совместить поиск и grep для сложного поиска? (GNU / Linux, найти, grep)

У меня есть файл, содержащий текст:

PADLST20120907:D:05B:UN:IBTA+TK4 17 JFL01+01'BGM+250+C'RFF+TN:TK4

Я хочу найти этот файл в Linux, используя эти две строки: "JFL" и "20120907". Как вы видите выше, файл содержит как "JFL", так и "20120907". Что я должен написать в командной строке? Перемешивания могут или не могут быть в одной линии.

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

С уважением

1 ответ1

3

Простой цикл bash сделает то, что вам нужно:

$ grep -rl JFL . | while read n; do grep -l 20120907 $n; done

Если имена ваших файлов содержат пробелы, выполните:

$ grep -rl JFL . | while read n; do grep -l 20120907 "$n"; done

Для подавления сообщений об ошибках перенаправьте стандартную ошибку :

$ grep -rl JFL . 2>/de/null | while read n; do grep -l 20120907 "$n"; done

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