Unix command > sort (ソート処理)
更新日
2014-10-31
広告
sortコマンドを使うと、ファイルの各行をソートできます。
単純なソート
サンプルファイル file.dat の内容は、以下のとおりです。
100 30 090
単純にsortコマンドを実行すると、以下のようになります。
$ sort file.dat 090 100 30
sortコマンドは、デフォルトで、各行を文字列として、辞書順にソートします。そのため、上記のような結果となります。
数値としてソート
各行を数値としてソートする場合は、 -n オプションを指定します。
$ sort -n file.dat 30 090 100
逆順にソートしたければ、-r オプションを指定します。
$ sort -n -r file.dat 100 090 30
上記のように、他のオプションと併用可能です。
特定の列でソート
サンプルファイル file.dat の内容が、以下のようなCSVファイルだとします。
ken,100 mary,30 bob,90
このファイルの内容を、2列目の数値でソートすることもできます。
$ sort -t , -k 2 -n file.dat mary,30 bob,90 ken,100
区切り文字は、-t オプションで指定します(上記の場合は「カンマ」)。何列目でソートするかは、-k オプションで指定します。
以下は、まず2列目でソートして、そのあと、1列目を数値としてソートする例です。
$ sort -t , -k 2,2 -k 1n test.txt
大文字と小文字を区別せずにソート
デフォルトだと、sortコマンドは大文字と小文字を区別してソートします。 例えば、'VM'と'Vi'という文字があったとき、デフォルトだと以下のようにソートします。VM Vi大文字と小文字の区別をしなくてよい場合は、-fオプションを使います。
$ sort -f file.txt Vi VMこれで、大文字小文字を区別せずにソートします。
広告
お問い合わせは sweng.tips@gmail.com まで。