Grep - corresponde apenas sem nova linha

1

Eu quero usar o comando grep para extrair algumas strings do meu arquivo de dados.

formato de arquivo de dados

a=1,b=2,c=3,
a=4,b=5,c=6,

Eu quero o formato de saída

a=1,c=3,
a=4,c=6,

Eu tentei o comando abaixo

grep -Po 'a=.*?,|c=.*?,' data

Mas o formato de saída está incorreto. Por favor, me ensine como fazer isso.

    
por tomli 06.01.2018 / 16:12

1 resposta

0

Uma possibilidade com sed seria a seguinte.

sed -n 's/\(a=.\?,\)\(.*\)\(c=.\?\)//p' data

Um regex mais genérico seria o seguinte.

sed -n 's/\([a-zA-Z]=.\?,\)\([a-zA-Z]=.\?,\)\([a-zA-Z]=.\?,\)//p' input
    
por 06.01.2018 / 17:58

Tags