Aqui você vai:
awk ' FS="," { print $2 "," $1 } ' sampleData.csv
Estou usando o bash. Eu tenho um arquivo CSV com duas colunas de dados que parecem mais ou menos assim
num_logins,day
253,2016-07-01
127,2016-07-02
Eu quero trocar a primeira e a segunda colunas (tornando a primeira coluna da data). Então eu tentei isso
awk ' { t = $1; $1 = $2; $2 = t; print; } ' /tmp/2016_logins.csv
No entanto, os resultados são os mesmos. O que estou perdendo na minha declaração awk acima para fazer as coisas mudarem corretamente?
Como o delimitador padrão é espaço / tabulação. Não vírgula. Pegando seu código original, e adicionando um -F,
resolve.
$ awk -F, ' { t = $1; $1 = $2; $2 = t; print; } ' /tmp/2016_logins.csv
day num_logins
2016-07-01 253
2016-07-02 127
$
Desmontando para {$0=$2" "$1}1
obtém o mesmo resultado.
$ awk -F, '{$0=$2" "$1}1' /tmp/2016_logins.csv
day num_logins
2016-07-01 253
2016-07-02 127
$