表題の通り。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`とのにらめっこになってしまう。
以上。