Eu tenho um script que pega vários arquivos CSV de uma pasta e os junta em um arquivo gzip com um campo extraído do nome do arquivo:
awk -F";" 'BEGIN { OFS = FS }
FNR == 1 { match(FILENAME, "([0-9]{8})", a); JOBID = a[1]; print $0, JOBID }
FNR > 1 { print $0, JOBID }' Event_*txt | gzip > agzipfile.gz
Meu objetivo é usar NF
para verificar se a linha contém 5 campos e se não imprimir esta linha para stderr ou para outro arquivo.
Mas eu não entendi ou encontrei uma maneira adequada de fazer isso.
É possível e como?
PS: estou usando GNUawk
Você pode redirecionar dentro do AWK:
/dev/stderr
é um dos nomes de arquivos especiais que o GNU AWK processa internamente. (Outras implementações de AWK gravarão em/dev/stderr
, se possível; em muitos sistemas que estão conectados ao erro padrão de qualquer maneira, o resultado é o mesmo.)Veja esta seção do manual sobre redirecionamentos , e esta sobre descritores de arquivos especiais .