Linuxではテキストファイルに記述されている内容を行単位でソートする「sort」コマンドがあります。
ここでは「sort」コマンドについて以下の内容で解説していきます。
この記事では「sort」コマンドについてわかりやすく解説していますので、ぜひ使い方を覚えておきましょう!
sortコマンドとは
テキストファイルに記述されている内容を行単位でソートするには「sort」コマンドを使用します。
「sort」コマンドを実行すれば、簡単にファイルをソート順に並び替えた結果を確認できるので非常に便利です。
・sortコマンドの書き方
$ sort ファイル名
sortコマンドの使い方
ここでは「sort」コマンドの使い方を見ていきましょう。
テキストの値を並び替える
data.txtの以下の内容のファイルを用意します。
10
50
30
100
20
このファイルをソートするには以下のように実行します。
$ sort data.txt
実行結果:
テキストファイルに記述されている値が昇順でソートさていますね!
注意点として「sort」コマンドは数値の小さい順に並び替えるのではなく、辞書や目次のように1文字目の数字の小さい順に並べ替えを行います。
また、以下のように文字列のテキストを並び替えることもできます。
AAAA
BBBB
DDDD
EEEE
CCCC
$ sort str.txt
実行結果:
文字列の場合はアルファベット順にソートされていることがわかりますね!
結果をファイルに出力する
「sort」コマンドはファイルをソートした結果を表示しますが、ソートされた内容がファイルに反映されるわけではありません。
もし、ソートした結果をファイルに出力したい場合はリダイレクト「>」を使用すると便利です。
リダイレクトする場合は以下のように実行します。
$ sort ファイル名 > 出力ファイル名
以下ではdate.txtのソート結果をout.txtの名前でリダイレクトしています。
$ sort data.txt > out.txt
作成されたout.txtを確認すると、ソートされた結果が出力されていることがわかります。
sortコマンドのオプション
「sort」コマンドで使用する主なオプションです。
オプション | 説明 |
---|---|
-f | 大文字小文字の区別をしない |
-n | 数値を並び替える |
-r | 降順で並び替える |
-k | ソートキーを指定する |
-u | 重複した行はソートしない |
-t | 区切り文字を指定 |
便利な使い方
-nで数値を並び替える
数値の1文字目ではなく、数値の値で並び替えを行いたい場合は「-n」を使用します。
「-n」を使用すれば、1、20、50、100のように降順でソートされます。
以下ではdate.txtに記述されている数値を降順で並び替えています。
$ sort -n data.txt
実行結果:
-rで降順で並び替える
昇順ではなく降順(大きい順)に並び替えたい場合は「-r」を使用します。
以下ではdate.txtに記述されている数値を降順で並び替えています。
$ sort -r data.txt
実行結果:
また、降順で数値の大きい順に並び替えたい場合は「-rn」を使用します。
$ sort -rn data.txt
-k、-tでキーを指定して並び替える
ファイルに記述されているキーを指定してソートを行いたい場合は、「-k」「-t」を指定します。
例えば以下のfruits.txtの「:」で区切られている2番目の項目を元に降順で並び替えを行いたい場合があるとします。
apple:100
orange:80
melon:500
banana:150
「:」で区切られた2番目の数値を並べ替えるには次のコマンドを実行します。
$ sort -n -k 2 -t : fruits.txt
実行結果
Linuxについてもっと知りたい方へ
そもそもLinuxについて、
「実はなんとなくしか理解していない…」
「Linuxを効率よく学習する方法が知りたい」
といった情報を知りたい方は、以下の記事も参考にしてみてくださいね!
まとめ
ここでは、Linuxでファイルの内容をソートする「sort」コマンドについて、
- sortコマンドとは
- sortコマンドの使い方
- sortコマンドのオプションと使い方
などについて解説しました。
「sort」コマンドはファイルの内容を並び替えるのに非常に便利なコマンドですのでこの機会に使い方をよく理解しておきましょう。
もし「sort」コマンドの使い方を忘れてしまったら、この記事を参考にしてくださいね。