#navi(../)
* 指定したフィールドでソートする方法・sort -k [#i401550d]
sortコマンドの-kオプションを利用することにより、指定したフィールドでソートすることができます。~
以下にフィールドを指定してsortする方法を以下に記します。
#contents
#htmlinsertpcsp(linux_ads_top.html,linux-sp.html)
* sort -k にてフィールドを指定してsort [#u6866b0b]
以下のファイルを使用してフィールド指定によるsortを行ってみます。
#ref(flower.txt)
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
** -k フィールド番号,[フィールド番号] [#zdb46084]
sortの-kオプションによりフィールドを指定しsortすることができます。~
構文は以下のようになります。
sort -k フィールド番号1[,フィールド番号2]
フィールド番号1に指定したフィールドからフィールド番号2に指定した範囲のフィールドをキーとしてソートします。
** 1つのフィールドを指定しソートしてみる [#kb1a7c0d]
上記の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
* CSVファイルのソート [#o622a1a7]
上記のflower.txtと同様の内容でカンマ区切りのcsvで同様のソートをしてみます。
#ref(flower.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
** セパレータを指定してsort -kを実行 [#v495ba3e]
オプション-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コマンドで指定したフィールドでソートする方法でした。
#htmlinsertpcsp(linux_ads_top.html,linux-sp.html)