sortコマンドは、FILE...
に指定したファイルの内容をソートします。ソートに使用するソートキーは、デフォルトでは行全体になりますが、オプションの指定でこのソートキーを指定することもできます。
ソートとは、並べ替えのことで、sortコマンドにおける並べ替えは、行全体あるいはソートキーに指定したフィールドの文字列をキーとして行います。キーとなる文字列のことをソートキーといい、ソートキーの文字コード(ASCIIコード)の値が小さいものから順番に並べ替えることを「昇順にソートする」といい、逆に文字コードの値が大きいものから順番に表示する並べ替えることを「降順にソートする」といいます
- ① -t SEP
- フィールドの区切り文字を「SEP」に指定します。このオプションは、オプション「-k」を指定して特定のフィールドをソートキーにする場合に有効です。省略した場合の区切り文字はスペースとなります。
- ② -k POS1[,POS2]
- 「POS1」に指定したフィールドから「POS2」に指定したフィールドまでをソートキーにします。「POS2」を省略すると、「POS1」に指定したフィールドから行末までをソートキーにします。
- ③ -i
- 印字不可能な文字を無視してソートします。
- ④ -r
- 降順にソートします。省略時は昇順にソートします。
- ⑤ -f
- 大文字と小文字の区別をせずにソートします。
- ⑥ -b
- 行頭のスペースを無視してソートします。
- ① FILE...
- ソートするファイルをスペースで区切って指定します。ワイルドカードによる指定も可能です。
[takeda]$ cat s01
1:1:2: 2:1:1
3:2:1: 3:2:2
3:2:1: 3:1:1
ファイル「s01」の内容[takeda]$ cat s02
2:2:1: 1:2:2
3:2:1: 3:1:2
3:2:1: 3:3:1
ファイル「s02」の内容[takeda]$ sort s01 s02
「s01」と「s02」のすべての内容を、行単位で昇順にソート1:1:2: 2:1:1
2:2:1: 1:2:2
3:2:1: 3:1:1
3:2:1: 3:1:2
3:2:1: 3:2:2
3:2:1: 3:3:1
[takeda]$ sort -t: -k5,5 s*
「:」を区切り文字とし、5つ目のフィールドをソートキーとしてソート1:1:2: 2:1:1
3:2:1: 3:1:1
3:2:1: 3:1:2
2:2:1: 1:2:2
3:2:1: 3:2:2
3:2:1: 3:3:1
ソートキー[takeda]$
[takeda]$ sort -r file01
オプション「-r」を指定して降順にソートa003
「A」のASCIIコードの値は「0x41」、「a」はASCIIコードの値は「0x61」で、大文字の方が値が小さい
a002
a001
A003
A002
A001
[takeda]$
[takeda]$ sort -f file01
オプション「-f」を指定して、大文字と小文字の区別をせずにソートA001
「A001」と「a001」とは同じと見なされ、このような場合には文字コード順に並ぶ
a001
A002
a002
A003
a003
[takeda]$
catコマンド
関連タグ
本コンテンツは「UNIXコマンド辞典 ビギナー編」(2003年)を元にWeb用に再編集したものです
All Contents copyright © 2003-2009 Odyssey Communications Inc., Shoeisha Co., Ltd.