Como grep as duas instruções padrão diferentes do mesmo arquivo separadamente

0

Eu tenho um arquivo de log que tem dois tipos diferentes de declarações.

Uma afirmação é como

LOG:Update For User 12932030 statement  @2113 set startduration='2017-01-03 00:01:30'...
LOG:Update For User 12932030 statement @2033 set startduration=endduration ...
LOG:Update For User 12932031 statement @2403 set startduration='2017-01-04 00:02:30'...
LOG:Update For User 12932032 statement  @3113 set startduration='2017-01-09 00:03:30'...
LOG:Update For User 12932033 statement @9313 set startduration=endduration ...
LOG:Update For User 12932034 statement @9126 set startduration=endduration ...

Então, a partir disso eu quero extrair ambos separadamente. Mas minha abordagem atual é como

grep -i " LOG:Update For User set startduration"  log.csv > result.csv

que não diferencia entre os dois. Eu não tenho certeza como posso incorporar o padrão após startduration. Qualquer ajuda é apreciada.

    
por Ricky 10.11.2017 / 09:07

1 resposta

3

Tente usar grep duas vezes:

Tipo de saída desejada №1:

 grep -E "LOG:Update For User [0-9]* statement *@[0-9]* set startduration='" log.csv

LOG:Update For User 12932030 statement  @2113 set startduration='2017-01-03 00:01:30'...
LOG:Update For User 12932031 statement @2403 set startduration='2017-01-04 00:02:30'...
LOG:Update For User 12932032 statement  @3113 set startduration='2017-01-09 00:03:30'...

Tipo de saída desejada №2:

grep -E "LOG:Update For User [0-9]* statement *@[0-9]* set startduration=[^']" log.csv

LOG:Update For User 12932030 statement @2033 set startduration=endduration ...
LOG:Update For User 12932033 statement @9313 set startduration=endduration ...
LOG:Update For User 12932034 statement  @9126 set startduration=endduration ...
    
por 10.11.2017 / 09:21

Tags