CSV sort

表題の通り。CSVファイルを`sort`コマンドで並び替える。いつもオプションを忘れて`man`とにらめっこする羽目になるのでメモしておく。

■ 環境

  • Linux
  • Mac OSX El Capitan

■ sort

下記のようなCSVファイルで試す。

$ cat test.csv
1,aaa,928
2,bbb,232
3,aaa,129
4,ccc,836
10,bbb,444
$

オプション無しだと、下記のようになる。

$ sort test.csv
1,aaa,928
10,bbb,444
2,bbb,232
3,aaa,129
4,ccc,836
$

行全体で文字列として並び替えられるのでこのようになる。

3つ目のフィールド(?)で並び替えるには下記のようにする。

$ sort -t , -k 3 -n test.csv
3,aaa,129
2,bbb,232
10,bbb,444
4,ccc,836
1,aaa,928
$

-t“で区切り文字として”,“を指定し、”-k“で何番目のフィールドの値を元に並び替えるかを指定する。

いつもこの”-t“を忘れてしまう。デリミタだから”-d“か?と思って試すも、”-n“と競合してエラーとなることで`man`とのにらめっこになってしまう。

以上。