7 つの興味深い Linux 'sort' コマンドの例 - パート 2
前回の記事では、「sort」コマンドのさまざまな例を取り上げました。見逃した場合は、以下のリンクから追いつくことができます。この投稿では、前の記事で中断したところから継続して、コマンドの残りの部分について説明します。このように、両方の記事を合わせて、Linux の「sort」コマンドの包括的なガイドとして機能します。
次に進む前に、「month.txt」という名前のテキスト ファイルを作成し、以下に示すデータを入力してください。
echo -e "mar\ndec\noct\nsep\nfeb\naug" > month.txt
cat month.txt
15. ファイルコンテンツを月ごとに並べ替える
次のコマンドは、「<」を指示する '-M'
オプションを使用して、月の略称または名前に基づいてファイル「month.txt」の内容を日付順に並べ替えます。データを日付として扱い、それに応じて並べ替えるには、strong>sort' コマンドを使用します。
sort -M month.txt
16. 人間が判読できる形式でのファイル サイズによる出力の並べ替え
次のコマンドは、「ls」コマンドと「sort」コマンドを組み合わせて 2 つのタスクを実行します。まず、ユーザーのホーム ディレクトリの内容を長い形式でリストし、次にこのディレクトリ リストを「sort」コマンドにパイプして、人間が判読できる形式でファイル サイズを出力します。これにより、ファイル内の最大ファイルと最小ファイルを簡単に識別できるようになります。ディレクトリ。
ls -l /home/$USER | sort -h -k5
17. ソートされたファイルの整合性のチェック
前回の記事では、例 4 の「sorted.txt」と例 6 の「lsl.txt」という 2 つのテキスト ファイルを生成しました。 「sorted.txt」はすでに並べ替えられていますが、「lsl.txt」は並べ替えられていません。
両方のファイルの並べ替えステータスを確認するには、「sorted.txt」が正しい順序で残っているかどうかを確認できる「sort」コマンドを使用します。 「lsl.txt」で並べ替えが必要かどうか。
sort -c sorted.txt
0 が返された場合は、ファイルが並べ替えられており、競合がないことを意味します。
sort -c lsl.txt
18. ファイル内でスペースを使用しない場合の区切り文字の処理
単語間の区切り文字 (区切り文字) がスペースの場合、「sort」コマンドは水平スペース以降のすべてを新しい単語として自動的に解釈します。しかし、区切り文字がスペースでない場合はどうなるでしょうか?
'|'
、'\'
、または などのスペース以外でコンテンツが区切られているテキスト ファイルを考えてみましょう。 '+'
または '.'
または ...
内容が +
で区切られたテキスト ファイルを作成します。 cat コマンドを使用してファイルの内容を確認します。
echo -e "21+linux+server+production\n11+debian+RedHat+CentOS\n131+Apache+Mysql+PHP\n7+Shell Scripting+python+perl\n111+postfix+exim+sendmail" > delimiter.txt
cat delimiter.txt
次に、最初の数値フィールドに基づいてこのファイルを並べ替えます。
sort -t '+' -nk1 delimiter.txt
2 番目は非数値の4 番目フィールドに基づいています。
区切り文字がタブの場合は、上の例に示すように、'+'
の代わりに $'\t'
を使用できます。
19. ファイルサイズごとに出力をランダムに並べ替える
ホーム ディレクトリの ls -l コマンドの出力を、「データ量」を表す 5 列目に基づいてランダムな順序で並べ替えます。
ls -l /home/avi/ | sort -k5 -R
結果はランダムに生成されるため、上記のスクリプトを実行するたびに異なる結果が得られる可能性があります。
前回の記事のルール番号 – 2 から明らかなように、sort コマンドは大文字よりも小文字で始まる行を優先します。前回の記事の例 3 も確認してください。ここでは、文字列「ラップトップ」が文字列「LAPTOP」の前に表示されています。
20. デフォルトの並べ替え設定の上書き
デフォルトの並べ替え設定をオーバーライドするにはどうすればよいですか?デフォルトの並べ替え設定をオーバーライドする前に、環境変数 'LC_ALL'
を 'C'
にエクスポートする必要があります。
これを行うには、コマンドライン プロンプトで以下のコードを実行します。
export LC_ALL=C
次に、テキスト ファイル「tecmint.txt」を並べ替えて、デフォルトの並べ替え設定をオーバーライドします。
sort tecmint.txt
出力を例 3 で達成したものと比較することを忘れないでください。また、オプション '-f
' (別名 '--ignore-) を使用することもできます。 case
' を使用して、よく整理された出力を取得します。
sort -f tecmint.txt
21. 2 つの入力ファイルを 1 回の操作で結合する
2 つの入力ファイルに対して「sort」を実行して、それらを一度に結合してみてはどうでしょうか?
「file1.txt」 と 「file2.txt」 という 2 つのテキスト ファイルを作成し、データを入力してみましょう。 「file1.txt」に以下のように番号を追加します。また、cat コマンドを使用してファイルの内容を検査します
echo -e “5 Reliable\n2 Fast\n3 Secure\n1 open-source\n4 customizable” > file1.txt
cat file1.txt
そして、2 番目のファイル「file2.txt」にデータを入力します。
echo -e “3 RedHat\n1 Debian\n5 Ubuntu\n2 Kali\n4 Fedora” > file2.txt
cat file2.txt
次に、両方のファイルの出力を並べ替えて結合します。
join <(sort -n file1.txt) <(sort file2.txt)
結論
結論として、この記事では Linux の ‘sort’ コマンドのさまざまな側面を検討しました。アルファベット順による基本的な並べ替えから始めて、数値と日付ベースの並べ替えに挑戦し、カスタム区切り文字にも触れました。また、ニーズに合わせてデフォルトの並べ替え設定をオーバーライドする方法も学びました。
さらに、ファイルがすでにソートされているかどうかを確認し、複数の入力ファイルに対する「ソート」操作を組み合わせる手法についても説明しました。ここで得た知識を活用すれば、Linux 環境でデータを効率的に並べ替え、整理するための強力なツールを自由に利用できるようになります。
この記事が洞察力に富み、コマンドラインの取り組みに役立つことを願っています。 Linux のスキルを向上させるために、「sort」の技術を探索、学習、習得し続けてください。