Назад | Перейти на главную страницу

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

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

Для простых вещей вы можете использовать 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