Como posso grep uma peça de texto de um arquivo de texto de 1 linha com delimitadores

6

Eu quero grep STX= ....... até seu primeiro delimitador ' e IRF= ..... até seu primeiro delimitador ' .

Como:

:STX=ANAA:1+asdf+5060128703127:P'
IRF=16165193117+160624+160624 '
    
por valera 25.11.2016 / 15:09

1 resposta

10

Obrigado a @terdon e @jhilmer por tornar a citação decididamente menos complicada

Se você quiser o '

$ grep -oE "(STX|IRF).*'" file 
STX=ANAA:1+asdf+5060128703127:P'
IRF=16165193117+160624+160624 '

Se você não quiser o '

$ grep -oE "(STX|IRF)[^']*"
STX=ANAA:1+asdf+5060128703127:P
IRF=16165193117+160624+160624

Explicação

  • -o mostra apenas a parte correspondente
  • -E usa ERE, então podemos usar | para pesquisar vários padrões
  • " começar a citar / parar de citar
  • (THIS|THAT) correspondência THIS ou THAT
  • .* corresponde a qualquer número de caracteres
  • \' literal '
  • [^']* qualquer número de caracteres exceto '
por Zanna 25.11.2016 / 15:34