sortコマンドの-kオプションを利用することにより、指定したフィールドでソートすることができます。
以下にフィールドを指定してsortする方法を以下に記します。
以下のファイルを使用してフィールド指定によるsortを行ってみます。
sakura@ubuntu:~$ cat flower.txt sakura 10 100 tsubaki 20 300 suzuran 30 50 ajisai 40 150 bara 50 200 kiku 60 300 himawari 70 250
sortの-kオプションによりフィールドを指定しsortすることができます。
構文は以下のようになります。
sort -k フィールド番号1[,フィールド番号2]
フィールド番号1に指定したフィールドからフィールド番号2に指定した範囲のフィールドをキーとしてソートします。
上記のflower.txtの2つ目のフィールドで逆順ソートしてみます。
オプション-kで2番めのフィールドから2番目のフィールド(つまり2番めのフィールドのみ)として-rオプションをつけて逆順ソートしています。
sakura@ubuntu:~$ sort -k 2,2 -r flower.txt himawari 70 250 kiku 60 300 bara 50 200 ajisai 40 150 suzuran 30 50 tsubaki 20 300 sakura 10 100
上記のflower.txtと同様の内容でカンマ区切りのcsvで同様のソートをしてみます。
sakura@ubuntu:~$ cat flower.csv sakura,10,100 tsubaki,20,300 suzuran,30,50 ajisai,40,150 bara,50,200 kiku,60,300 himawari,70,250
オプション-tを利用することによりセパレータを指定できます。
オプション-rも指定し逆順ソートとしています。
今回はCSVなので、-tでカンマを指定しています。
sakura@ubuntu:~$ sort -r -t , -k 2,2 flower.csv himawari,70,250 kiku,60,300 bara,50,200 ajisai,40,150 suzuran,30,50 tsubaki,20,300 sakura,10,100
以上、sortコマンドで指定したフィールドでソートする方法でした。