Filtrando linhas com base no padrão de duas palavras

2

Meu arquivo de texto é assim:

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

Eu preciso filtrar o texto por critérios - se determinada linha contiver:

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

deixe estas linhas.

A saída após a filtragem dos meus dados seria:

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

Qual é a maneira mais simples de fazer isso?

    
por vayacondios2015 24.08.2016 / 03:41

1 resposta

1

Você pode combinar diretamente testes de expressão regular logicamente em awk , por exemplo,

$ 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
    
por steeldriver 24.08.2016 / 04:09