Фильтрация строк по шаблону пары слов

Мой текстовый файл выглядит так:

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

Какой самый простой способ сделать это?

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
Другие вопросы по тегам