Acrescentando registros a um arquivo usando o awk

1

Estou usando o awk para fazer muitos para um, ou seja, ler vários arquivos .csv e, usando uma condição, filtrar os registros desses arquivos em outro arquivo csv. O comando é

awk -F, '{if($1=="OPTSTK"&&$13>0)print > "stockoptions.csv";}' fo1.csv fo2.csv

Esse comando faz o trabalho para mim, exceto que, quando executo esse comando para um novo conjunto de arquivos csv (digamos fo3.csv e fo4.csv), a saída da execução do comando anterior é sobrescrita. Existe uma maneira de acrescentar a saída das execuções subseqüentes à saída da primeira execução do comando?

    
por Parikshit Bhinde 22.04.2018 / 09:28

1 resposta

2

Sim, use >> em vez de > .

Por exemplo:

awk -F, '$1 == "OPTSTK" && $13 > 0 { print >> "stockoptions.csv" }' fo1.csv fo2.csv

Ou, deixe o shell fazer o redirecionamento e cortar o comprimento do comando awk :

awk -F, '$1 == "OPTSTK" && $13 > 0' fo1.csv fo2.csv >>"stockoptions.csv"
    
por 22.04.2018 / 09:32

Tags