Есть ли утилита 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