redireciona a saída do comando awk gsub para o arquivo

1

Eu encontrei uma resposta sobre como remover vírgulas entre aspas de um arquivo CSV delimitado por vírgulas aqui no stackexchange (não posso comentar lá, pois 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-lo no console?

Eu tentei várias combinações de uso de '>' que só me deu arquivos vazios ou erros. '> >' me deu um erro toda vez.

    
por Samyukta Sherugar 16.10.2014 / 12:11

1 resposta

2

Usar o redirecionamento padrão funcionará no padrão:

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

Isso ainda imprime erros na tela.

No entanto, se você quiser que os erros e a saída padrão 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
    
por 16.10.2014 / 12:20