Фильтрация строк на основе шаблона нескольких слов

Мой текстовый файл похож на это:

city=london&language=en&x=12345&y=6789&z=7
sometext?z=7
city=dublin&language=en&x=12345&y=6789&z=7
city=madrid&language=en&x=12345&y=6789&z=7
sometext?y
sometext?x

Я должен отфильтровать текст по критериям - если определенная строка содержит:

city, language, x, y, z anywhere in the line

оставьте это строками.

Вывод после фильтрации моих данных был бы:

city=london&language=en&x=12345&y=6789&z=7
city=dublin&language=en&x=12345&y=6789&z=7
city=madrid&language=en&x=12345&y=6789&z=7

Что самый простой путь состоит в том, чтобы сделать это?

2
задан 24 August 2016 в 04:41

1 ответ

Можно прямо объединить тесты регулярного выражения логически в awk, например,

$ awk '/city/ && /language/ && /x/ && /y/ && /z/' file.txt
city=london&language=en&x=12345&y=6789&z=7
city=dublin&language=en&x=12345&y=6789&z=7
city=madrid&language=en&x=12345&y=6789&z=7
1
ответ дан 2 December 2019 в 04:54

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

Похожие вопросы: