先日、列の順番を入れ替える案件が有りましたので、あメログ。
test.csv
a,b,c
a,b,c
というCSVを
a,c,b
a,c,b
に並べ替えたいとします。
方法は色々有るんですが、ワンライナーでさくっと変換したい場合は
paste -d, test.csv test.csv | cut -d, -f1,3,5ですかね。
echo -e "a,b,c\na,b,c" | sed -e "s/^\(.*\),\(.*\),\(.*\)$/\1,\3,\2/g"
echo -e "a,b,c\na,b,c" | awk 'BEGIN{ FS=","; OFS=",";} { print $1, $3, $2}'
他にも色々方法は有るんですが、私はコマンドの短いpasteで処理しました。
実行速度を取るか、メモリ使用量を取るか、コマンドの短さを取るか、好みのコマンドを取るか、プロジェクト毎の決まりに従うか…等々で色々変わりますので、場合に選って使い分けてます。
0 件のコメント:
コメントを投稿
つっこみ