Ubuntu: datamash コマンドでCSVを縦横変換

コマンドラインで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 という文字で埋めてくれる。