Como resolver este erro de sintaxe do gawk (GNU awk) no terminal OSX?

0

Estou usando o terminal OSX e tentando extrair o texto especificado do arquivo de log por regex.

a versão do awk é

GNU Awk 4.2.1, API: 2.0 (GNU MPFR 4.0.1, GNU MP 6.1.2)
Copyright (C) 1989, 1991-2018 Free Software Foundation.

minha tentativa de operação é

$gawk '/123/ BEGIN{RS="DEBUG"; FS="\n"}{print $0"\n"}END{}' ./app_108_utf8_T2.log > output.txt

mas o awk diz

gawk: cmd. line:1: /123/ BEGIN{RS="DEBUG"; FS="\n"}{print $0"\n"}END{}
gawk: cmd. line:1:       ^ syntax error

Por que o awk diz o erro?

    
por user74176 11.04.2018 / 10:36

1 resposta

3

Suponho que você deseja executar

gawk 'BEGIN{RS="DEBUG"; FS="\n"} /123/{print $0"\n"}' ./app_108_utf8_T2.log > output.txt

BEGIN define o bloco de instruções que são executadas no início do processo e /123/ define o bloco que é executado quando a expressão regular "123" corresponde à linha atual. Você não pode especificar ambos para um único bloco.

    
por 11.04.2018 / 10:38