#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)

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS