Возвращать результат, только если в файле существует несколько строк

Существует ли утилита Linux, которая будет возвращать имя файла, только если он содержит несколько указанных строк? Не обязательно на одной линии. Очевидно, что grep может "ИЛИ", но я ищу "И".

1 ответ

Для простых вещей вы можете использовать grep или же awkДля более сложных вещей вам понадобится язык программирования. Вероятно, лучше всего начать с языка сценариев, таких как: python, perl, php, javascript.

grep Команда может быть использована для ИЛИ:

ls|egrep 'first_pattern|second_pattern"

Или чтобы соответствовать обеим моделям:

ls|egrep "first_pattern.*second_pattern|second_pattern.*first_pattern"

Чтобы лучше понять, как писать шаблоны RegEx, смотрите: https://en.wikipedia.org/wiki/Regular_expression

Действительно сложные синтаксические анализаторы могут быть написаны с помощью генератора синтаксических анализаторов, таких как ANTLR

Другие вопросы по тегам