Linuxのsortコマンドでテキストファイルの行を並び替える方法!使い方やオプション一覧を解説!

WindowsやMacOSの無料代替えオペレーションシステムであるLinuxはsortコマンドを使ってテキストファイルの行を並び替えることができます。そこで今日は、Linuxのsortコマンドでの並び替え方法やsortコマンドのオプション一覧を解説します。

Linuxのsortコマンドでテキストファイルの行を並び替える方法!使い方やオプション一覧を解説!のイメージ

目次

  1. 1Linuxのsort(ソート)コマンドとは?何ができる?
  2. sortはbashなどでテキストファイルを行単位で並べ替えるコマンド
  3. 2Linuxのsortコマンドの基本的な使い方
  4. テキストデータを昇順で並べ替える方法
  5. テキストデータを降順で並べ替える方法
  6. 並べ替えた結果をファイルに出力する方法
  7. 3Linuxのsortコマンドの便利な使い方
  8. 数値の値を昇順で並び替える方法
  9. 数値の値を降順で並び替える方法
  10. キーを指定して並び替える方法
  11. 4Linuxのsortコマンドで使うおもなオプション一覧
  12. 重複している行を省いてソートする【-u】
  13. 大文字と小文字を区別しないでソートする【-f】
  14. 空白と英数字のみと仮定してソートする【-d】
  15. 先頭の空白を無視してソートする【-b】
  16. 月名でソートする【-M】
  17. Linuxのsortコマンドオプションまとめ
  18. 5Linuxのsortコマンドを理解して便利に使おう!

Linuxのsort(ソート)コマンドとは?何ができる?

sort(ソート)コマンドのsort(ソート)とは、データを特定の規則に従って\順番に並び替えること、コマンドとは命令のことです。普段Linux以外のExcelなどで並び替え機能は使用している人も多いと思いますが、コマンドを使っての並び替えはあまり馴染みのない人も多いでしょう。そこでLinuxのsort(ソート)コマンドとは何か、何ができるのかを具体的に説明します。

sortはbashなどでテキストファイルを行単位で並べ替えるコマンド

Linuxのsort(ソート)コマンドはテキストファイルを行単位で並べ替えることができるコマンドのことを言います。bashというのは「Bourne Again Shell」の略で、コンピューターのOSを構成するソフトウェアの1つです。もう少し簡単に言うと、作成されたコマンドをコンピューターへ伝えるためのプログラムということです。

bashはスプリクトと組む時に使ったり、情報の提示なとを担当したりするもので、別名シェルスクリプトとも呼ばれています。

Linuxのsortコマンドの基本的な使い方

実際にLimuxのsort(ソート)コマンドを使ってテキストデータを並び替える方法を紹介していきます。まずは基本的なテキストデータの並び替える方法からです。

テキストデータを昇順で並べ替える方法

並べ替えるテキストデータ例

並べ替えの一番基本的な使い方として、Lunixのsort(ソート)コマンドでテキストデータを昇順に並び替えてみましょう。上画像のような「data.txt」というファイル名のテキストデータをLunixのsort(ソート)コマンドで並べ替える場合、コマンドは「$ sort data.txt」となります。

sortコマンド後

並び替えた結果が上画像です。普段Excleなどで並べ替え機能を使っている人なら、10の次が20ではなく100という並び替え結果に違和感を覚えるでしょう。なぜならLinuxの標準のsortコマンドでは、テキストデータ=文字として1文字目の小さい順に並び替えるからです。数値の値として並び替えたい場合は、次項「Linuxのsortコマンドの便利な使い方/数値の値を昇順で並び替える方法」で解説します。

テキストデータを降順で並べ替える方法

Lunixのsortコマンドで降順に並べ替え

次にテキストデータを降順(大きい順)に並べ替える方法を紹介します。使用するsort(ソート)コマンドは先ほどの昇順に並べ替えたsortコマンドに降順で開並び替えるオプションである【-r】を加えた「$ sort -r data.txt」です。先ほどの昇順に並び替えに使ったテキストデータを降順に並び替えたものが上画像の右側です。こちらも5,3,2,1と1文字目を降順で並び替えています。

並べ替えた結果をファイルに出力する方法

大量のテキストデータを並べ替えした場合、出力した方が作業がしやすくなります。そのためのファイルに出力するコマンドは、「$ sort 並び替え対象ファイル > 並び替え出力ファイル」となりますので、先ほどのdata.txtをdata_sort.txtというファイル名で出力するには、「$ sort data.txt > data_sort.txt」というコマンドになります。

ThumbLinux teeコマンドで標準出力とファイル出力する方法!使い方や使用できるオプションを解説!
本記事では「Linux」の「tee」コマンドを使った標準出力・ファイル出力方法を紹介していき...

Linuxのsortコマンドの便利な使い方

Linuxのsortコマンドは前項で紹介した基本的な並び替え以外にも便利な使い方がありますので紹介していきます。

数値の値を昇順で並び替える方法

Linuxのsortコマンドで数値の値で昇順に並び替え

Linuxのsortコマンドは1文字目の数値ではなく、数値の値で並び替える方法もあります。その場合、sortコマンドのオプション【-n】を使うことで、テキストデータ(文字列)を数値とみなして並べ替えるため、1、20、50、100のように昇順で並び替えることができます。data.txtを数値で昇順に並び替えたい場合のコマンドは「$ sort -n data.txt」です。

数値の値を降順で並び替える方法

Linuxのsortコマンドで数値の値で降順に並び替え

数値の値を降順(大きい順)で並び替える方法もあります。その場合はLinux sortコマンドオプション【-rn】を使います。オプション【-r】は昇順の逆で並べ替え、オプション【-n】は先ほど説明した通り、テキストデータ(文字列)を数値とみなすので、数値を降順に並び替えするというコマンドになり、sortコマンドは「$ sort -rn data.txt」となります。

キーを指定して並び替える方法

キーを指定して並び替える方法

キーを指定して並び替えるとは、例えば「suzuk:80」のように名前と数値の組み合わせの中で、数値の値で並び替える場合のsortコマンドの方法です。

Linux sortコマンドオプションは【-n】と【-k】を使います。【-n】は先ほどから登場しているオプションでテキストデータを数値の値とみなすオプションコマンド、【-k】はsort対象の場所と並べ替えの種別を指定するオプションです。【-k2】なら2列目、【-k3】は3列目を指定することになります。

Linuxのsortコマンドで使うおもなオプション一覧

Linuxのsortコマンドには先ほど紹介した【-n】と【-k】以外にもオプションがありますので、紹介していきます。

重複している行を省いてソートする【-u】

Linux sortコマンドオプション【-u】はsort対象のテキストデータに重複しているデータがある場合、その重複している行を省いて並べ替えるオプションです。コマンドは「$ sort -u ファイル名」となります。

大文字と小文字を区別しないでソートする【-f】

大文字と小文字を区別しないでソート

Linusのsortコマンドで並び替えを実行すると、大文字と小文字を区別するため、a-z続いてA-Zという順に並び替えが行われます。Linux sortコマンドオプション【-f】はsort対象のテキストデータに大文字と小文字が混在している場合、その大文字・小文字を区別せずにsortするオプションです。コマンドは「$ sort -f data.txt」です。

空白と英数字のみと仮定してソートする【-d】

sort対象のテキストデータ内に日本語等が混在している場合、Linux sortコマンドオプション【-d】を使うと、空白・英数字のみをsort対象として電話帳の順にソートコマンドを実行します。

先頭の空白を無視してソートする【-b】

テキストデータの先頭に空白がある場合、正しくsortすることができません。その場合は、Linux sortコマンドオプション【-b】で対象テキストデータの先頭に空白があっても、それを無視してsortコマンドが実行できます。

月名でソートする【-M】

月名でソート

Linux sortコマンドオプション【-M】は長いオプションでは【--month-sort】となり、月名でsortする場合に使用します。もし行の先頭に空白があってもそれらは無視されて、最初に出てくる3文字を月の名称の省略計とみなし、JAN・FEB~DECの順にソートします。また、大文字・小文字の区別はされません。

Linuxのsortコマンドオプションまとめ

最後にこれまで紹介してきたLinuxのsortコマンドのオプションをまとめますので参考にしてください。紹介したLinux sortオプションはショートオプションでしたが、コマンドの意味が分かりやすいので長いオプションもあわせて載せておきます。

ショートオプション オプション コマンドの内容
-b --ignore-leading-blanks  先頭の空白を無視して並び替える
-d --dictionary-order 空白と英数字のみと仮定して並び替える
-f --ignore-case 大文字と小文字を区別しないで並び替える
-k --key キーを指定して並び替える
-n --numeric-sort  文字列を数値の値と見なして並び替える
-M --month-sort 月名で並び替える
-r --reverse 降順で並び替える
-u --unique 重複している行を省いて並び替える

ThumbLinuxをMacで使うメリットは?違いやオススメの使い分けを比較して解説!
LinuxをMacで使うメリットや使い分け方法について解説します。また、LinuxとMacの...

Linuxのsortコマンドを理解して便利に使おう!

Linuxのsortコマンドはコマンドの書式のコツさえ掴んでしまえば、テキストデータでも数値でもオプションを使って並び替えすることができるので便利です。Linux  sortコマンドを使いこなして作業効率をあげましょう。

ThumbWindows10でLinuxを使う方法!WSLをインストールする方法を解説!
Windows10ではLinuxを正式に使うことができるようになりました。インストール方法は...

関連するまとめ

Original
この記事のライター
nabeturbo3
機械音痴でカタカナ単語の苦手な自分に理解できる解説を心がけています。