サーチ…


前書き

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


Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow