【簡単】sortコマンドの使い方|基本から応用まで実例付きで解説

※本サイトにはプロモーション・広告が含まれています。

(最終更新月:2023年4月)

✔このような方へ向けて書かれた記事となります

「sortコマンドとは何だろうか?」

「sortコマンドの使い方が知りたい」

「sortコマンドを実践ですぐに使いたい」

✔当記事を通じてお伝えすること

  • sortコマンドとは?
  • sortコマンドの書き方
  • sortコマンドの実践における使用例

当記事では、sortコマンドの基本的な知識や書き方についてはもちろん、オプションの一覧や応用した使い方まで、具体例付きでご紹介しています。

ぜひ最後までご覧ください。

筆者プロフィール

筆者プロフィールアイコン

【現職】プロダクトマネージャー

【副業】ブログ(月間20万PV)/YouTube/Web・アプリ制作

「プログラミング × ライティング × 営業」の経験を活かし、30後半からのIT系職へシフト。現在はプロダクトマネージャーとして、さまざまな関係者の間に入り奮闘してます。当サイトでは、実際に手を動かせるWebアプリの開発を通じて、プログラミングはもちろん、IT職に必要な情報を提供していきます。

【当ブログで紹介しているサイト】

当サイトチュートリアルで作成したデモ版日報アプリ

Django × Reactで開発したツール系Webアプリ

✔人に見せても恥ずかしくないコードを書こう

「リーダブルコード」は、わかりやすく良いコードの定義を教えてくれる本です。

  • 見るからにきれいなコードの書き方
  • コードの分割方法
  • 変数や関数の命名規則

エンジニアのスタンダートとすべき基準を一から解説しています。

何回も読むのに値する本なので、ぜひ手にとって読んでみてください。

sortコマンドを使うための基礎知識

sortコマンドを使うためには、基本的なものから身につけなければなりません。

以下の3つに目を通せば、簡単に理解いただけます。

  • sortコマンドとは?
  • sortコマンドの基本構文
  • コマンドの基本的な使用方法

sortコマンドとは?

sortコマンドは、テキストファイルやデータを並べ替える際に使用されるコマンドです。

主にアルファベット順や数値順に並べ替えをおこないます。

分析やデータ整理で使えるコマンドです。

sortコマンドの基本構文

基本的なsortコマンドの書式は以下のようになります。

sort [オプション] [ファイル名]

コマンドの基本的な使用方法

sortコマンドを使ってテキストファイルをソートする方法を紹介します。

以下の内容が記載されたsample.txtというファイルを用意しましょう。

apple
grape
banana

sortコマンドを実行すると、次のようにアルファベット順に並べ替えられます。

$ sort sample.txt
apple
banana
grape

オプションを指定しない場合、sortコマンドはデフォルトでアルファベット順に並べ替えられるのです。

sortコマンドのオプション一覧

オプションにおける使い方を見る前に、まずはその一覧をご覧ください。

どのようなものがあるかのイメージが付くでしょう。

オプション名説明具体例
-n数値順にソートするsort -n numbers.txt
-r逆順にソートするsort -r data.txt
-k指定した列をキーにソートするsort -k 2 data.txt
-f大文字小文字を無視してソートするsort -f case.txt
-u重複した行を削除し、一意な行のみを出力するsort -u duplicate.txt
-t区切り文字を指定するsort -t “,” -k 2 data.csv
-oソート結果を指定したファイルに出力するsort -o sorted.txt data.txt
-b空白を無視してソートするsort -b data.txt
-M月名を考慮してソートするsort -M month.txt
-T一時ファイルを作成するディレクトリを指定するsort -T /tmp data.txt
–buffer-size使用するメモリ量を制限するsort –buffer-size=100M data.txt

オプションを活用したソート

オプションを活用したソート方法を具体的に見ていきます。

以下の中から、やりたいことに近しいものを探しましょう。

  • 数値ソート:-nオプション
  • 逆順ソート:-rオプション
  • 一部の列をキーとしてソート:-kオプション
  • 字列の大文字小文字を無視してソート:-fオプション
  • 一意な行のみを出力する:-uオプション
  • オプションの組み合わせと実用例

数値ソート:-nオプション

数値のソートを行いたい場合は、-nオプションを使います。

例えば、次の内容が記載されたnumbers.txtというファイルがあるとします。

5
1
10

数値順にソートする場合は、以下のように実行します。

$ sort -n numbers.txt
1
5
10

逆順ソート:-rオプション

逆順にソートしたい場合は、-rオプションを使用します。先ほどのnumbers.txtを逆順にソートする場合は、以下のように実行します。

$ sort -nr numbers.txt
10
5
1

-nと-rオプションを合わせて、「-nr」と表記しています。

一部の列をキーとしてソート:-kオプション

特定の列をキーとしてソートする場合は、-kオプションを使用します。以下の内容が記載されたdict.txtというファイルがあるとします。

apple 5
banana 2
grape 10

2列目の数値をキーにしてソートするには、次のように実行します。

$ sort -k 2n dict.txt
banana 2
apple 5
grape 10

字列の大文字小文字を無視してソート:-fオプション

大文字小文字を無視してソートする場合は、-fオプションを使用します。

以下の内容が記載されたcase.txtというファイルがあるとします。

Apple
banana
Grape

大文字小文字を無視してソートするには、次のように実行します。

$ sort -f case.txt
Apple
banana
Grape

一意な行のみを出力する:-uオプション

重複した行を削除し、一意な行のみを出力する場合は、-uオプションを使用します。

以下の内容が記載されたduplicate.txtというファイルがあるとします。

apple
banana
apple
grape

一意な行のみを出力するには、次のように実行します。

$ sort -u duplicate.txt
apple
banana
grape

オプションの組み合わせと実用例

オプションを組み合わせて使うことで、さまざまなソートを実現できます。

例えば、先ほどのdict.txtを、1列目のアルファベットで逆順にソートしたい場合は、以下のように実行します。

$ sort -k 1n -r dict.txt
grape 10
banana 2
apple 5

実践的な場面別の使用例

実践的な場面別の使用例を紹介します。

sortはさまざまな場面で活用できるのです。

  • ログファイルの解析
  • データ分析における前処理
  • CSVファイルの操作
  • ソーシャルメディアのデータ整理

ログファイルの解析

ログファイルには時系列でイベントが記録されていますが、特定のフィールドに着目してソートすることで、解析が容易になります。

例えば、アクセスログからステータスコードごとにソートできます。

データ分析における前処理

データ分析を行う際、データを整理することが重要です。

sortコマンドを使用して、特定の列を基準にデータをソートしたり、重複データを削除したりすることで、分析が容易になります。

CSVファイルの操作

CSVファイルは、データの列がカンマで区切られた形式です。

sortコマンドを使用して、特定の列を基準にデータをソートできます。

ただし、-tオプションを使用して、区切り文字をカンマに設定する必要があります。

次のCSVファイル(data.csv)があったとします。

Name,Age,Score
Alice,30,89
Bob,25,95
Charlie,22,88
David,28,92

こちらのコマンドで、区切り文字をカンマに設定し、実行。

sort -t "," -k 2 -n data.csv

ソーシャルメディアのデータ整理

ソーシャルメディアのデータは、フォロワー数やいいね数などの指標に基づいてソートが可能。

sortコマンドを使って、これらの指標に基づいてデータを整理してみると面白いです。

よくあるトラブルシューティングと解決策

トラブルシューティング方法についても見ていきましょう。

多くの場合、以下のような問題が起こります。

  • 文字コードの問題
  • 区切り文字の設定ミス
  • オプションの指定ミス
  • ファイルサイズが大きすぎる場合の対処法

文字コードの問題

異なる文字コードが混在している場合、ソート結果が期待通りにならないことがあります。

iconvコマンドを使用して、ファイルの文字コードを統一することができます。

区切り文字の設定ミス

区切り文字を設定する際に、誤った文字を指定すると、ソートが正しく行われません。

-tオプションで正しい区切り文字を指定してください。

オプションの指定ミス

オプションを指定する際に、誤ったオプションを指定すると、ソートが期待通りになりません。

オプションを再度確認し、正しいオプションを指定してください。

ファイルサイズが大きすぎる場合の対処法

ファイルサイズが大きすぎてメモリ不足になる場合はメモリ使用量に制限をかけます。

sortコマンドの–buffer-sizeオプションを使いましょう。

sort --buffer-size=50M big_data.txt

参考リソースと関連コマンド

sortコマンドやLinuxのコマンドについて、より深く勉強したいのであれば、次の方法があります。

  • 公式ドキュメント
  • 関連するコマンド例
  • おすすめの書籍

公式ドキュメント

sort invocation (GNU Coreutils 9.5)
sort invocation (GNU Coreutils 9.5)

関連するコマンド例

関連するコマンドについての記事も用意しています。

awk: テキストファイルの列を処理するコマンド

sed: テキストファイルを編集するコマンド

おすすめの書籍

created by Rinker
¥2,970 (2024/05/26 15:19:52時点 楽天市場調べ-詳細)

まとめ:sortコマンドでファイルやデータの整理をしよう

当記事でご説明したことは以下のとおり。

  • Linuxのsortコマンドの基本的な使い方
  • オプションの活用方法
  • 実践的な使用例
  • トラブルシューティングと解決策

sortコマンドは並べ替えが簡単にできる便利なコマンドです。

sortコマンドを習得するだけでなく、他のテキスト処理コマンド(awk, sed, uniqなど)も学ぶことで、データ処理や解析がより効率的になります。

また、実際にプロジェクトでデータ処理を行いながら、必要なコマンドを学ぶことで理解が深まるでしょう。

タイトルとURLをコピーしました