redirecionar a saída do comando awk gsub para arquivo

redirecionar a saída do comando awk gsub para arquivo

Encontrei uma resposta sobre como remover vírgulas entre aspas de um arquivo csv delimitado por vírgula aqui no stackexchange (não posso comentar porque não tenho o representante necessário).

awk -F'"' -v OFS='' '{ for (i=2; i<=NF; i+=2) gsub(",", "", $i) } 1' infile

Como posso redirecionar a saída para um arquivo em vez de imprimi-la no console?

Tentei várias combinações de uso de '>', o que só me deu arquivos vazios ou erros. '>>' sempre me dava um erro.

Responder1

Usar o redirecionamento padrão funcionará na saída padrão:

$ awk -F'"' -v OFS='' '{ for (i=2; i<=NF; i+=2) gsub(",", "", $i) } 1' infile > test.out
$

Isso ainda imprimirá erros na tela.

No entanto, se você quiser que erros e padrões entrem no arquivo, execute:

$ awk -F'"' -v OFS='' '{ for (i=2; i<=NF; i+=2) gsub(",", "", $i) } 1' infile 2>&1 > test.out
$

Ou você pode separar os erros da saída padrão:

awk -F'"' -v OFS='' '{ for (i=2; i<=NF; i+=2) gsub(",", "", $i) } 1' infile 2> errors.out 1 > test.out

informação relacionada