(最終更新月:2023年4月)
✔このような方へ向けて書かれた記事となります
「sortコマンドとは何だろうか?」
「sortコマンドの使い方が知りたい」
「sortコマンドを実践ですぐに使いたい」
✔当記事を通じてお伝えすること
- sortコマンドとは?
- sortコマンドの書き方
- sortコマンドの実践における使用例
当記事では、sortコマンドの基本的な知識や書き方についてはもちろん、オプションの一覧や応用した使い方まで、具体例付きでご紹介しています。
ぜひ最後までご覧ください。
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のコマンドについて、より深く勉強したいのであれば、次の方法があります。
- 公式ドキュメント
- 関連するコマンド例
- おすすめの書籍
公式ドキュメント
関連するコマンド例
関連するコマンドについての記事も用意しています。
awk: テキストファイルの列を処理するコマンド
sed: テキストファイルを編集するコマンド
おすすめの書籍
まとめ:sortコマンドでファイルやデータの整理をしよう
当記事でご説明したことは以下のとおり。
- Linuxのsortコマンドの基本的な使い方
- オプションの活用方法
- 実践的な使用例
- トラブルシューティングと解決策
sortコマンドは並べ替えが簡単にできる便利なコマンドです。
sortコマンドを習得するだけでなく、他のテキスト処理コマンド(awk, sed, uniqなど)も学ぶことで、データ処理や解析がより効率的になります。
また、実際にプロジェクトでデータ処理を行いながら、必要なコマンドを学ぶことで理解が深まるでしょう。