GNU/Linux >> Linux の 問題 >  >> Linux

Linuxでのソートコマンドの10の便利な例

Linuxでコマンドを並べ替える

sortコマンドは、テキスト行を便利な方法で配置します。このシンプルなツールは、コマンドラインから情報をすばやく並べ替えるのに役立ちます。

構文

sort [options] <filename>

いくつか注意する必要があります:

  • オプションなしで並べ替えを使用すると、デフォルトのルールが適用されます。予期しない結果を回避するために、デフォルトのルールを理解するのに役立ちます。
  • 並べ替えを使用する場合、元のデータは安全です。入力の結果は、コマンドラインにのみ表示されます。ただし、必要に応じて、別のファイルへの出力を指定できます。これについては後で詳しく説明します。
  • ソートは元々ASCII文字で使用するために設計されました。これについてはテストしていませんが、エンコードが異なると予期しない結果が生じる可能性があります。

並べ替えコマンドのデフォルトのルール

これらは、並べ替えを使用する場合のデフォルトのルールです。最初のいくつかの例は、これらの優先順位がどのように管理されるかを明確にします。次に、特殊なオプションを見ていきます。

  • 数字>文字
  • 小文字>大文字
並べ替えコマンドの例

さまざまな状況で使用できる並べ替えコマンドの例をいくつか紹介します。

1。アルファベット順に並べ替える

デフォルトのsortコマンドを使用すると、情報をアルファベット順に簡単に表示できます。オプションは必要ありません。大文字と小文字が混在するエントリでも、A〜Zの並べ替えは期待どおりに機能します。

filename.txtという名前のサンプルテキストファイルを使用します。ファイルの内容を表示すると、次のように表示されます。

MX Linux
Manjaro
Mint
elementary
Ubuntu

ここで、並べ替えコマンドを使用する場合:

sort filename.txt

アルファベット順に並べ替えられた出力は次のとおりです。

elementary
Manjaro
Mint
MX Linux
Ubuntu

2。数値で並べ替え[オプション-n]

前の例で使用したものと同じリストを使用して、番号順に並べ替えてみましょう。ご参考までに、このリストには、distrowatch.comによると最も人気のあるLinuxディストリビューション(2019年7月)が反映されています。

アイテムに番号が付けられるようにファイルの内容を変更しますが、以下に示すように順序が狂っています。

1. MX Linux
4. elementary
2. Manjaro
5. Ubuntu
3. Mint
sort filename.txt

並べ替えた後の結果は次のとおりです。

1. MX Linux
2. Manjaro
3. Mint
4. elementary
5. Ubuntu

よさそうだね?ただし、この方法を使用してデータを正確に配置できますか? おそらくそうではありません。 別の例を見て、理由を調べましょう。

これが私の新しいサンプルテキストです:

1
5
10
3
5
2
60
23
432
21

ここで、オプションを指定せずにsortコマンドを使用すると、次のようになります。

[email protected]:~$ sort order.txt
1
10
2
21
23
3
432
5
5
60

注:数字は先頭の文字のみで並べ替えられます。

-nを追加する場合 オプションの場合、文字列の数値は、最初の文字だけでなく評価されています。これで、リストが適切に並べ替えられていることがわかります。

sort order.txt -n

これで、正しくソートされた出力が得られます:

1
2
3
5
5
10
21
23
60
432

3。逆の順序で並べ替える[option-r]

これについては、ディストロリストをもう一度使用します。逆関数は自明です。ファイルにあるコンテンツの順序が逆になります。

sort filename.txt -r

そして、ここに逆の順序で出力テキストがあります:

5. Ubuntu
4. elementary
3. Mint
2. Manjaro
1. MX Linux

4。ランダムソート[オプション-R]

逆機能を試みているときに誤ってShiftキーを押しつぶした場合、奇妙な結果が得られた可能性があります。 -R 出力をランダムな順序で再配置します。

sort filename.txt -R

ランダムに並べ替えられた出力は次のとおりです。

4. elementary
1. MX Linux
2. Manjaro
5. Ubuntu
3. Mint

5。月で並べ替え[オプション-M]

並べ替えには、月ごとに並べ替える機能も組み込まれています。ロケール固有の情報に基づいていくつかの形式を認識します。私はいくつかのunqiueテストをデモンストレーションして、年ではなく日付日で配置されることを示しました。月の略語はフルネームの前に表示されます。

この例のサンプルテキストファイルは次のとおりです。

March
Feb
February
April
August
July
June
November
October
December
May
September
1
4
3
6
01/05/19
01/10/19
02/06/18

-Mオプションを使用して月ごとに並べ替えましょう:

sort filename.txt -M

表示される出力は次のとおりです。

01/05/19
01/10/19
02/06/18
1
3
4
6
Jan
Feb
February
March
April
May
June
July
August
September
October
November
December

6。並べ替えた結果を別のファイルに保存する

前述したように、sortはデフォルトでは元のファイルを変更しません。並べ替えたコンテンツを保存する必要がある場合は、保存できます。

この例では、並べ替えられた情報を印刷してfilename_sorted.txtという名前で保存する新しいファイルを作成しました。

注意: 並べ替えたデータを同じファイルに転送しようとすると、ファイルの内容が消去されます。

sort filename.txt -n > filename_sorted.txt

出力ファイルでcatコマンドを使用すると、その内容は次のようになります。

1. MX Linux
2. Manjaro
3. Mint
4. elementary
5. Ubuntu

7。特定の列を並べ替える[オプション-k]

ファイルにテーブルがある場合は、-kを使用できます ソートする列を指定するオプション。 3番目の列として任意の数値を追加し、各列でソートされた出力を表示します。可能な出力の多様性を示すために、いくつかの例を含めました。列番号の後にオプションが追加されます。

1. MX Linux 100
2. Manjaro 400
3. Mint 300
4. elementary 500
5. Ubuntu 200
sort filename.txt -k 2

これにより、2番目の列のテキストがアルファベット順に並べ替えられます。

4. elementary 500
2. Manjaro 400
3. Mint 300
1. MX Linux 100
5. Ubuntu 200
sort filename.txt -k 3n

これにより、3列目の数字でテキストが並べ替えられます。

1. MX Linux 100
5. Ubuntu 200
3. Mint 300
2. Manjaro 400
4. elementary 500
sort filename.txt -k 3nr

上記のコマンドと同じですが、並べ替え順序が逆になっています。

4. elementary 500
2. Manjaro 400
3. Mint 300
5. Ubuntu 200
1. MX Linux 100

8。重複を並べ替えて削除する[オプション-u]

重複する可能性のあるファイルがある場合は、-u オプションはあなたの人生をはるかに楽にします。並べ替えでは元のデータファイルは変更されないことに注意してください。重複しているアイテムだけで新しいファイルを作成することにしました。以下に、コマンドの実行後の入力と各ファイルの内容を示します。

1. MX Linux
2. Manjaro
3. Mint
4. elementary
5. Ubuntu
1. MX Linux
2. Manjaro
3. Mint
4. elementary
5. Ubuntu
1. MX Linux
2. Manjaro
3. Mint
4. elementary
5. Ubuntu
sort filename.txt -u > filename_duplicates.txt

並べ替えられ、重複していない出力ファイルは次のとおりです。

1. MX Linux 
2. Manjaro 
3. Mint 
4. elementary 
5. Ubuntu 

9。並べ替え中は大文字と小文字を区別しない[option-f]

sortを実行している多くの最新のディストリビューションは、デフォルトで無視ケースを実装します。そうでない場合は、-fを追加します オプションを選択すると、期待どおりの結果が得られます。

sort filename.txt -f

並べ替えコマンドで大文字と小文字が無視される出力は次のとおりです。

alpha
alPHa
Alpha
ALpha
beta
Beta
BEta
BETA

10。人間の数値で並べ替え[オプション-h]

このオプションを使用すると、1k(1000など)のような英数字の値を比較できます。

sort filename.txt -h

並べ替えられた出力は次のとおりです。

10.0
100
1000.0
1k

このチュートリアルが、Linuxでのsortコマンドの基本的な使用法を理解するのに役立つことを願っています。ソートコマンドは、テキストファイルを一意にソートするためにLinuxのuniqコマンドと組み合わせて使用​​されることがよくあります。

クールな並べ替えのトリックがある場合は、コメントセクションで共有してみませんか?


Linux
  1. Linuxでのlsコマンド:17の便利な例の説明

  2. LinuxでのSplitコマンドの9つの便利な例

  3. Dockerpsコマンドの便利な例

  1. Linuxでの12の便利なWgetコマンドの例

  2. Linuxでのddコマンドの5つの実用例

  3. Linux での sort コマンドの例

  1. Linuxのソートコマンドと例

  2. Linuxでの並べ替えコマンドと例

  3. Linuxでidコマンドを使用する方法:5つの便利な例