【Linuxコマンド】sortでテキストの行を並び替える方法

Linuxではテキストファイルに記述されている内容を行単位でソートする「sort」コマンドがあります。

ここでは「sort」コマンドについて以下の内容で解説していきます。

sort_jobun

この記事では「sort」コマンドについてわかりやすく解説していますので、ぜひ使い方を覚えておきましょう!

sortコマンドとは

shutterstock_283275968

テキストファイルに記述されている内容を行単位でソートするには「sort」コマンドを使用します。

「sort」コマンドを実行すれば、簡単にファイルをソート順に並び替えた結果を確認できるので非常に便利です。

・sortコマンドの書き方

$ sort ファイル名

sortコマンドの使い方

ここでは「sort」コマンドの使い方を見ていきましょう。

テキストの値を並び替える

data.txtの以下の内容のファイルを用意します。

【data.txt】
10
50
30
100
20

 
このファイルをソートするには以下のように実行します。

$ sort data.txt

実行結果:
sort_image01

テキストファイルに記述されている値が昇順でソートさていますね!

注意点として「sort」コマンドは数値の小さい順に並び替えるのではなく、辞書や目次のように1文字目の数字の小さい順に並べ替えを行います。

また、以下のように文字列のテキストを並び替えることもできます。

【str.txt】
AAAA
BBBB
DDDD
EEEE
CCCC

 

$ sort str.txt

実行結果:
sort_image02

文字列の場合はアルファベット順にソートされていることがわかりますね!

結果をファイルに出力する

「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

実行結果:
sort_image03

-rで降順で並び替える

昇順ではなく降順(大きい順)に並び替えたい場合は「-r」を使用します。

以下ではdate.txtに記述されている数値を降順で並び替えています。

$ sort -r data.txt

実行結果:
sort_image04

また、降順で数値の大きい順に並び替えたい場合は「-rn」を使用します。

$ sort -rn data.txt

-k、-tでキーを指定して並び替える

ファイルに記述されているキーを指定してソートを行いたい場合は、「-k」「-t」を指定します。

例えば以下のfruits.txtの「:」で区切られている2番目の項目を元に降順で並び替えを行いたい場合があるとします。

【fruits.txt】
apple:100
orange:80
melon:500
banana:150

「:」で区切られた2番目の数値を並べ替えるには次のコマンドを実行します。

$ sort -n -k 2 -t : fruits.txt

実行結果
sort_image05

Linuxについてもっと知りたい方へ

そもそもLinuxについて、

「実はなんとなくしか理解していない…」
「Linuxを効率よく学習する方法が知りたい」

といった情報を知りたい方は、以下の記事も参考にしてみてくださいね!



まとめ

ここでは、Linuxでファイルの内容をソートする「sort」コマンドについて、

  • sortコマンドとは
  • sortコマンドの使い方
  • sortコマンドのオプションと使い方

などについて解説しました。

「sort」コマンドはファイルの内容を並び替えるのに非常に便利なコマンドですのでこの機会に使い方をよく理解しておきましょう。

もし「sort」コマンドの使い方を忘れてしまったら、この記事を参考にしてくださいね。

「プログラミング、右も左もわからない…」という方にオススメ

当プログラミングスクール「侍エンジニア塾」では、これまで6000人以上のエンジニアを輩出してきました。

その経験を通してプログラミング学習に成功する人は、「目的目標が明確でそれに合わせた学習プランがあること」「常に相談できる人がそばにいること」「自己解決能力が身につくこと」この3つが根付いている傾向を発見しました。

侍エンジニア塾は上記3つの成功ポイントを満たすようなサービス設計に磨きをかけております。

cta_under_bnr

「自分のスタイルや目的に合わせて学習を進めたいな」とお考えの方は、ぜひチェックしてみてください。

書いた人

侍ブログ編集部

侍エンジニア塾は「人生を変えるプログラミング学習」をコンセンプトに、過去多くのフリーランスエンジニアを輩出したプログラミングスクールです。プログラミングに役立つ情報や有用な情報を発信していきます。
サービスページはこちら
ツイッターはこちら
フェイスブックはこちら

おすすめコンテンツ

まずはここから!初心者でも1から学べるプログラミング入門カリキュラム

転職成功で受講料0円!あなたもプログラミングを学んでエンジニアデビュー