ウェブサイト検索

Linux の「sort」コマンドの 14 の役立つ例 - パート 1


「sort」コマンドは、入力テキスト ファイルの行を出力し、すべてのファイルをソート順に連結するために使用される Linux プログラムです。並べ替えコマンドは、空白スペースをフィールド区切り文字として使用し、入力ファイル全体を並べ替えキーとして使用します。 sort コマンドは実際にファイルを並べ替えるのではなく、出力をリダイレクトするまでは並べ替えられた出力を印刷するだけであることに注意することが重要です。

この記事は、Linux の sort コマンドの使用方法を示す 14 の有用な実践例を示し、Linux の「sort」コマンドについて深く洞察することを目的としています。

1. 指定した内容のテキストファイルの作成

まず、「tecmint.txt」という名前のテキスト ファイルを作成します。このファイルは、このタスクの作業ディレクトリに「sort」コマンドの例を実行するために使用されます。 /home/$USER/デスクトップ/tecmint'。

以下のコマンドのオプション「-e」はバックスラッシュの解釈を有効にし、/n は echo コマンドに各文字列を新しい行に書き込むように指示します。

echo -e "computer\nmouse\nLAPTOP\ndata\nRedHat\nlaptop\ndebian\nlaptop" > tecmint.txt

2. ファイルの内容を表示する

sort」 コマンドを始める前に、ファイルの内容と、次の cat コマンドを使用してファイルがどのように表示されるかを見てみましょう。

cat tecmint.txt

3. ファイルコンテンツの並べ替え

コマンド「sort tecmint.txt」は、ファイル内の行をアルファベットの昇順に並べ替えるために使用されます。重複する行がある場合は、一意の各行のコピーが 1 つ保持されます。

sort tecmint.txt

注: 上記のコマンドはテキスト ファイルの内容を並べ替えず、並べ替えられた出力を端末に表示するだけです。

4. ソートされた出力を新しいファイルにリダイレクトする

次のコマンドは、テキスト ファイル「tecmint.txt」の行をアルファベット順に並べ替え、並べ替えられた出力を「sorted.txt」という名前の新しいファイルにリダイレクトするために使用されます。これは、元のファイルは変更されず、並べ替えられたコンテンツが別のファイルに保存されることを意味します。

内容を確認するには、cat コマンドを使用します。

sort tecmint.txt > sorted.txt
cat sorted.txt

5. ファイル内容を逆順に並べ替える

次のコマンドは、テキスト ファイル「tecmint.txt」の行を逆順に並べ替えるために使用されます。つまり、行がアルファベットの降順に並べられ、並べ替えられた出力が新しいファイルにリダイレクトされます。 「reversesorted.txt」という名前のファイル

sort -r tecmint.txt > reversesorted.txt
cat reversesorted.txt

6. ファイルとディレクトリのリストの保存

次のコマンドは、ls コマンドを使用してユーザーのホーム ディレクトリ (“/home/$USER”) の内容を詳細な長い形式のビューで一覧表示し、このディレクトリの一覧を次の場所にリダイレクトします。ユーザーのデスクトップ、特に「tecmint」ディレクトリにある「lsl.txt」という名前のテキスト ファイル。

ls -l /home/$USER > /home/$USER/Desktop/tecmint/lsl.txt
cat lsl.txt

次に、デフォルトの頭文字以外のフィールドに基づいてコンテンツを並べ替える例を見ていきます。

7. 2 番目のフィールドに基づいてファイルの内容を並べ替える

次のコマンドは、各行の 2 番目のフィールドの値に基づいてファイル「lsl.txt」の内容を並べ替えるために使用されます。 '-n' オプションは数値による並べ替えを示し、2 番目のフィールドをテキストではなく数値として扱います。

'-k2' オプションは、2 番目のフィールドに基づいて並べ替えることを指定します。このコマンドを実行すると、「lsl.txt」内の行のソートされたリストが取得されます。ソート基準は各行の 2 番目のフィールドの数値です。

sort -nk2 lsl.txt

8. 9 番目のフィールドに基づいてファイルの内容を並べ替える

次のコマンドは、各行の 9 番目のフィールドの値に基づいてファイル「lsl.txt」内の行を昇順に並べ替えるために使用されます。 '-k9' オプションは、9 番目のフィールドに基づいて並べ替えを実行することを指定します。

sort -k9 lsl.txt

9. ファイルサイズでファイルを並べ替える

次のコマンドは、「ls」コマンドと「sort」コマンドを組み合わせて、ユーザーのホーム ディレクトリの内容を長いリスト形式でリストし、ディレクトリ リストを < にパイプします。'sort -nk5' は、ファイル サイズを表す 5 列目の値に基づいてリストを並べ替えます。

ls -l /home/$USER | sort -nk5

10. ファイル内の重複行の削除

次のコマンドは、ファイル「tecmint.txt」内の行をアルファベットの昇順で並べ替え、'-u' オプション (「<」を表す) を使用して重複した行を削除します。 「strong>unique」を使用し、ソートされた出力に一意の行が確実に保持されるようにします。

cat tecmint.txt
sort -u tecmint.txt

これまでのルール (私たちが観察したこと):

  • リスト内では数字で始まる行が優先され、別途指定されるまで (-r) 先頭に表示されます。
  • 小文字で始まる行がリスト内で優先され、別途指定されるまで (-r) 先頭に表示されます。
  • 内容は、別途指定されるまで (-r)、辞書内のアルファベットの出現に基づいてリストされます。
  • デフォルトでは、sort コマンドは各行を文字列として扱い、特に指定がない限り、辞書に出現するアルファベット (数値が望ましい、ルール – 1 を参照) に応じてそれをソートします。

11. ディレクトリリストをファイルにリダイレクトする

次のコマンドは、隠しファイルやディレクトリを含むユーザーのホーム ディレクトリの内容を長い形式で一覧表示し、ディレクトリの一覧をユーザーのデスクトップにある「lsla.txt」という名前のテキスト ファイルにリダイレクトします。 「tecmint」ディレクトリ。

ls -lA /home/$USER > /home/$USER/Desktop/tecmint/lsla.txt
cat lsla.txt

ls コマンドに精通している人は、'ls -lA''ls -l' に隠しファイルを加えたものと同等であることを理解しています。その結果、これら 2 つのコマンドの内容の大部分は同じになります。

12. ファイルの内容を並べ替える

次のコマンドは、2 つのテキスト ファイル 'lsl.txt' と 'lsla.txt' の内容をアルファベットの昇順で並べ替え、並べ替えられた内容を結合して表示します。ターミナル。

sort lsl.txt lsla.txt

ファイルとフォルダーが繰り返されていることに注目してください。

13. ファイル内の重複行の削除

次のコマンドは、2 つのテキスト ファイル 'lsl.txt' と 'lsla.txt' の内容をアルファベットの昇順でマージして並べ替えると同時に、 '-u' オプション。ソートされた出力で一意の行が確実に保持されます。

sort -u lsl.txt lsla.txt

重複したものは出力から省略されていることに注意してください。さらに、出力をリダイレクトして新しいファイルに保存できます。

14. カスタム区切り文字を使用した複数のフィールドによる出力の並べ替え

次のコマンドは、「ls」コマンドと「sort」コマンドを組み合わせて、ユーザーのホーム ディレクトリの内容を長い形式でリストし、ディレクトリのリストを「<」にパイプします。 「strong>sort」コマンド。特定の列とフィールドに基づいて出力を並べ替えます。

ls -l /home/$USER | sort -t "," -nk2,5 -k9

コマンドの内訳は次のとおりです。

  • -t "," – カンマ (",") がフィールド区切り文字として使用されることを指定します。
  • -nk2,5 – 列 2 ~ 5 の数値による並べ替えを示します。これらは通常、権限と所有権の詳細を表します。
  • -k9 – ファイル サイズを表す 9 列目に基づいて結果をさらに並べ替えます。

それは今のところすべてです。次の記事では、sort コマンドの例をさらに詳しく説明します。

引き続き、共有、コメント、「いいね!」をして、より多くの視聴者にリーチできるようご協力ください。