コマンドラインでCSVを縦横変換出来るdatamashコマンドが便利なのでメモ。
まずはインストール。
1 | $ sudo apt install datamash -y |
CSVファイルを用意する。
1 2 3 | 1,2,3 hoge,fuga,piyo foo,bar,baz |
datamashコマンドを実行。
1 2 3 4 5 | $ cat tmp.csv | datamash transpose -t, 1,hoge,foo 2,fuga,bar 3,piyo,baz |
縦横が入れ替わって出力される。
列数が不揃いな場合は、 –no-strict オプションを使えば足りないカラムは N/A という文字で埋めてくれる。