Bash
並べ替えを使用する
サーチ…
前書き
sortは、ファイル内のデータをシーケンスで並べ替えるUnixコマンドです。
構文
- sort [option] filename
パラメーター
オプション | 意味 |
---|---|
-u | 各出力行を一意にする |
備考
sort
をオンラインで読む完全なユーザーマニュアル
並べ替えコマンドの出力
sort
コマンドは、行のリストをソートするために使用されます。
ファイルからの入力
sort file.txt
コマンドからの入力
任意の出力コマンドを並べ替えることができます。この例では、パターンに続くファイルのリストです。
find * -name pattern | sort
出力を一意にする
出力の各行が一意である必要がある場合は、 -u
オプションを追加します。
フォルダ内のファイルの所有者を表示するには
ls -l | awk '{print $3}' | sort -u
数値ソート
このファイルがあるとします:
test>>cat file
10.Gryffindor
4.Hogwarts
2.Harry
3.Dumbledore
1.The sorting hat
このファイルを数値的にソートするには、sortを-nオプションとともに使用します。
test>>sort -n file
これは、以下のようにファイルをソートする必要があります:
1.The sorting hat
2.Harry
3.Dumbledore
4.Hogwarts
10.Gryffindor
並べ替え順序を逆にする:並べ替えの順序を逆にするには、-rオプションを使います
上記のファイルのソート順を逆にするには:
sort -rn file
これは、以下のようにファイルをソートする必要があります:
10.Gryffindor
4.Hogwarts
3.Dumbledore
2.Harry
1.The sorting hat
キーで並べ替える
このファイルがあるとします:
test>>cat Hogwarts
Harry Malfoy Rowena Helga
Gryffindor Slytherin Ravenclaw Hufflepuff
Hermione Goyle Lockhart Tonks
Ron Snape Olivander Newt
Ron Goyle Flitwick Sprout
カラムをキーとしてソートするには、kオプションを使います。
test>>sort -k 2 Hogwarts
これは、列2をキーとしてファイルをソートします。
Ron Goyle Flitwick Sprout
Hermione Goyle Lockhart Tonks
Harry Malfoy Rowena Helga
Gryffindor Slytherin Ravenclaw Hufflepuff
Ron Snape Olivander Newt
現在、プライマリキーと一緒にセカンダリキーを使用してファイルをソートする必要がある場合は、次のようにします。
sort -k 2,2 -k 1,1 Hogwarts
これにより、最初に列2のファイルを主キーとしてソートし、列1のファイルを副キーとしてソートします。
Hermione Goyle Lockhart Tonks
Ron Goyle Flitwick Sprout
Harry Malfoy Rowena Helga
Gryffindor Slytherin Ravenclaw Hufflepuff
Ron Snape Olivander Newt
2つ以上のキーを持つファイルをソートする必要がある場合は、-kオプションごとに、ソートが終了する場所を指定する必要があります。したがって、-k1,1は最初の列でソートを開始し、最初の列でソートを終了することを意味します。
-tオプション
前の例では、ファイルにはデフォルトのdelimeter-tabがありました。デフォルト以外の区切り文字を持つファイルをソートする場合、delimeterを指定するには-tオプションが必要です。次のようなファイルがあるとします。
test>>cat file
5.|Gryffindor
4.|Hogwarts
2.|Harry
3.|Dumbledore
1.|The sorting hat
このファイルを2番目の列ごとにソートするには、次のようにします。
test>>sort -t "|" -k 2 file
これは、以下のようにファイルをソートします:
3.|Dumbledore
5.|Gryffindor
2.|Harry
4.|Hogwarts
1.|The sorting hat