sort
Linuxでは、コマンドを使用して、ファイルの出力を指定された順序で出力します。このコマンドは、データ(ファイルのコンテンツまたは任意のコマンドの出力)を処理し、指定された方法でデータを並べ替えます。これにより、データを効率的に読み取ることができます。大量の情報が利用可能であり、アルファベット順または昇順または降順の番号順に並べる必要がある場合に非常に役立ちます。
アルファベット順の並べ替えでは、コマンドは各行の最初の文字をチェックし、行を上下に移動して各行をアルファベット順に並べます。
数値ソートでは、コマンドは各行の数値をチェックし、行を昇順または降順で並べ替えます。この組織では、出力の上部に小さい数値が表示されます。 sort
にはごくわずかな違いがあります およびgrep
指図。 sort
コマンドは、データをアルファベット順または数値順に昇順または降順で並べ替えます。 grep
コマンドは、必要な情報のみを表示または非表示にします。
つまり、 sort
正しく配置されていない大きなファイルやリストを読み取る必要があり、これらのファイルを読み取るのが困難で時間がかかる場合に便利なコマンドです。この問題を解決するには、 sort
を使用します Linuxでコマンドを実行して、ファイルまたはリストのコンテンツを必要な形式で整理します。これは、必要なコンテンツの読み取りに役立つ場合があります。 sort
コマンドは、データがASCII形式であることを前提としています。 sort
にはいくつかの便利なオプションがあります これにより、出力の動作が変わる可能性があります。コマンドの構文とともに、いくつかの例を以下に示します。
構文
sort [OPTION]... [FILE]...
sort [OPTION]... --files0-from=F
例
最初の例では、 sort
を使用します オプションなしのコマンド。これにより、各行の最初の文字を考慮して、各行がアルファベット順に編成されます。注:小文字で始まる行は、大文字で始まる行の前に表示されます。したがって、 b (小文字)が最初の位置になり、 B (大文字)は2番目の位置にあります。
$ cat test.txt
Dr.B.R.Ambedkar
MahatmaJyotibaPhule
Budhha
ChatrapatiShahuMaharaj
budhha
Ramaai
$ sort test.txt
budhha
Budhha
ChatrapatiShahuMaharaj
Dr.B.R.Ambedkar
MahatmaJyotibaPhule
Ramaai
場合によっては、逆の順序、つまりアルファベット順とは逆のデータが必要になります。これは、 -r
を使用して実行されます 以下に示すように、オプション:
$ sort test.txt
budhha
Budhha
ChatrapatiShahuMaharaj
Dr.B.R.Ambedkar
MahatmaJyotibaPhule
Ramaai
$ sort -r test.txt
Ramaai
MahatmaJyotibaPhule
Dr.B.R.Ambedkar
ChatrapatiShahuMaharaj
Budhha
budhha
文字の並べ替えと同様に、 sort
数値的にも。オプション-n
数値を整理し、 -r
を使用して結果を反転します オプション。以下では、 -n
を使用しています オプションで、番号を昇順で並べました。したがって、最小の数字が上にあり、最大の数字が下にあります。上記と同じオプション-r
を使用して出力を逆にすることもできます -n
を使用 一番上に最大の数字を表示します。
$ cat numeric.txt
14
04
34
1891
938
378
2356
$ sort -n numeric.txt
04
14
34
378
938
1891
2356
$ sort -nr numeric.txt
2356
1891
938
378
34
14
04
並べ替えコード>できます 特定の列も同様です。
並べ替えコード>するには 特定の列には、
-k
を使用します 列番号とともにオプション。以下の例では、 -k
のみを使用していることに注意してください。 列を選択するオプション、したがって sort
コマンドは、2番目の列の整数ではなく、2番目の列の最初の桁を考慮してデータを配置します。したがって、数字 278を含む行 数字28を含む行の前に表示されます 。 -n
を使用する場合 -k
のオプション (列選択の場合)、データは昇順で表示され、シーケンスは最小から最大の番号になります(2番目の例で説明されています):
$ cat file2.txt
Advika 1
Amit 30
Ajit 28
Abhi 278
Chirag 2
$ sort -k 2 file2.txt
Advika 1
Chirag 2
Abhi 278
Ajit 28
Amit 30
ここでは、列番号と数値の並べ替えを一緒に使用します。次の例では、5番目の列を昇順で数値で並べ替えています。
$ ls -l
total 0
-rw-r--r-- 1 amwaghma hpcapp 42 Aug 20 19:30 file2.txt
-rw-r--r-- 1 amwaghma hpcapp 31 Aug 20 19:51 months.txt
-rw-r--r-- 1 amwaghma hpcapp 27 Aug 20 19:20 numeric.txt
-rw-r--r-- 1 amwaghma hpcapp 73 Aug 20 19:49 test.txt
$ ls -l | sort -nk 5
total 0
-rw-r--r-- 1 amwaghma hpcapp 27 Aug 20 19:20 numeric.txt
-rw-r--r-- 1 amwaghma hpcapp 31 Aug 20 19:51 months.txt
-rw-r--r-- 1 amwaghma hpcapp 42 Aug 20 19:30 file2.txt
-rw-r--r-- 1 amwaghma hpcapp 73 Aug 20 19:49 test.txt
多くの場合、一部の行に重複するエントリが多数あります。これらは、 -u
を使用して削除できます オプション。次の例では、 -u
の動作を表示します。 重複するエントリを削除するオプション:
$ cat test.txt
Dr.B.R.Ambedkar
MahatmaJyotibaPhule
ChatrapatiShahuMaharaj
Dr.B.R.Ambedkar
budhha
Ramaai
Dr.B.R.Ambedkar
$ sort test.txt
budhha
ChatrapatiShahuMaharaj
Dr.B.R.Ambedkar
Dr.B.R.Ambedkar
Dr.B.R.Ambedkar
MahatmaJyotibaPhule
Ramaai
$ sort -u test.txt
budhha
ChatrapatiShahuMaharaj
Dr.B.R.Ambedkar
MahatmaJyotibaPhule
Ramaai
ファイルがソートされているかどうかを確認できる興味深いオプションが1つあります。 -c
を使用する オプション、 sort
コマンドは、最初のアウトオブプレース行を報告します。既存のファイルがすでにソートされている場合は、 sort
出力はありません。各行を次々にチェックし、ソートされていない行を見つけると、メッセージを提供します。以下の例では、 -c
sort
のオプション コマンドは、各行をチェックするのに役立ちます。最初の試行では、最初の2行の最初の文字を比較します。これは正しいと判断されます。つまり、文字 D と手紙M アルファベット順に並べられています。 2回目の試行では、3行目の最初の文字と最初の2行の最初の文字を調べて、3行目がアルファベット順に配置されていないことを確認します。したがって、ファイルの最初の不一致行が行番号とともに出力されます。
$ cat test.txt
Dr.B.R.Ambedkar
MahatmaJyotibaPhule
ChatrapatiShahuMaharaj
budhha
Ramaai
$ sort test.txt
budhha
ChatrapatiShahuMaharaj
Dr.B.R.Ambedkar
MahatmaJyotibaPhule
Ramaai
$ sort -c test.txt
sort: test.txt:3: disorder: ChatrapatiShahuMaharaj
データや数値の配置と同様に、ファイル内の月を配置することもできます。 -M
を使用してこれを行います オプションを選択し、 -r
を使用して順序を逆にします オプション。
$ cat months.txt
February
December
January
July
$ sort -M months.txt
January
February
July
December
$ sort -Mr months.txt
December
July
February
January
それぞれのファイル名をスペースで区切った引数として使用することで、複数のファイルを同時に並べ替えることもできます。出力は次々に印刷されます。以下では、 -n
を使用しました 2番目の数値ファイルを並べ替えるオプション。
$ cat test.txt numeric.txt
Dr.B.R.Ambedkar
MahatmaJyotibaPhule
ChatrapatiShahuMaharaj
budhha
Ramaai
14
04
34
1891
938
378
2356
$ sort test.txt -n numeric.txt
budhha
ChatrapatiShahuMaharaj
Dr.B.R.Ambedkar
MahatmaJyotibaPhule
Ramaai
04
14
34
378
938
1891
2356
-o
を使用して、ソートされた出力を別のファイルにリダイレクトすることもできます。 オプション:
$ sort test.txt > sortfile
OR
$ sort -o sortfile test.txt
$ cat sortfile
budhha
Budhha
ChatrapatiShahuMaharaj
Dr.B.R.Ambedkar
MahatmaJyotibaPhule
Ramaai
まとめ
上記のオプションを使用すると、ファイルの内容または任意のコマンドの出力で並べ替えを実行できることがわかります。大きなデータセットを昇順または降順で簡単に配置できます。考えられるすべての方法でデータを再配置するために使用できるオプションはたくさんあります。最も驚くべきことは、元のファイルに変更を加えなかったことです。したがって、私たちのデータは安全です。
[無料ダウンロード:高度なLinuxコマンドのチートシート。 ]