カテゴリ: Linux基礎 更新日: 2026/05/16

sortコマンドで重複行を削除する方法!初心者でもわかるLinuxのソートとユニーク処理

sortコマンドで重複行を削除する方法
sortコマンドで重複行を削除する方法

先生と生徒の会話形式で理解しよう

生徒

「同じ内容の行がたくさんあるファイルって、どうやって整理すればいいですか?」

先生

「Linuxではsortコマンドを使うと、並び替えと同時に重複行を削除できますよ。」

生徒

「並び替えと削除が一緒にできるんですか?」

先生

「はい。オプションを付けるだけで簡単にできます。初心者でもすぐ使えるので、一緒に確認していきましょう。」

1. sortコマンドとは?

1. sortコマンドとは?
1. sortコマンドとは?

sortコマンドは、Linuxでテキストを並び替えるための基本コマンドです。ファイルの中の行を、アルファベット順や数字順に整列させることができます。

たとえば、バラバラに書かれた名前リストやログファイルを整理したいときに使います。さらに便利なのが、重複している行を削除する機能です。

イメージとしては、紙に書かれた名前を五十音順に並べ替えながら、同じ名前を一つにまとめるような作業です。

2. 重複行とは何か?

2. 重複行とは何か?
2. 重複行とは何か?

重複行とは、同じ内容が複数回書かれている行のことです。たとえば次のようなファイルを考えてみましょう。


cat names.txt
apple
banana
apple
orange
banana

この場合、appleやbananaが複数回登場しています。こうした重複を取り除くことで、データを見やすく整理できます。

3. sortコマンドで重複行を削除する基本

3. sortコマンドで重複行を削除する基本
3. sortコマンドで重複行を削除する基本

sortコマンドでは、-uオプションを使うことで、重複行を削除できます。


sort -u names.txt
apple
banana
orange

このように、同じ内容の行が1つにまとめられます。内部では、まず並び替えを行い、そのあと重複を取り除く仕組みです。

つまり、並び替えと重複削除が同時にできる便利なコマンドです。

4. uniqコマンドとの違い

4. uniqコマンドとの違い
4. uniqコマンドとの違い

重複行の削除には、uniqコマンドもあります。しかし、uniqには重要な特徴があります。

隣り合った同じ行しか削除できないという点です。


cat names.txt | uniq
apple
banana
apple
orange
banana

このように、並び替えがされていない場合、正しく削除されません。


sort names.txt | uniq
apple
banana
orange

このように、sortと組み合わせて使うことで正しく重複削除ができます。

まとめると、次のようになります。

  • sort -u:並び替えと削除を同時に実行
  • uniq:並び替え後に重複削除

5. sort -uの実用例

5. sort -uの実用例
5. sort -uの実用例

実際の現場では、ログやデータの整理に使われます。たとえば、アクセスログのIPアドレス一覧を整理する場合です。


cat access.log | sort -u
192.168.0.1
192.168.0.2
192.168.0.3

このように、同じIPアドレスをまとめて確認できます。データ分析やトラブル調査でも役立ちます。

6. オプションの組み合わせでさらに便利に

6. オプションの組み合わせでさらに便利に
6. オプションの組み合わせでさらに便利に

sortコマンドは、他のオプションと組み合わせることで、より便利に使えます。

数値で並び替えながら重複削除する場合は、-nを使います。


sort -n -u numbers.txt
1
2
3
10

逆順で並び替える場合は、-rを使います。


sort -r -u names.txt
orange
banana
apple

このように、用途に応じて柔軟に使えます。

7. ファイルを上書きする方法

7. ファイルを上書きする方法
7. ファイルを上書きする方法

結果を別のファイルに保存することもできます。


sort -u names.txt > unique_names.txt

このコマンドでは、重複を削除した結果がunique_names.txtに保存されます。

元のファイルを残しつつ、新しい整理済みファイルを作れるので安全です。

8. sortコマンドを使うメリット

8. sortコマンドを使うメリット
8. sortコマンドを使うメリット

sortコマンドで重複行を削除するメリットは次の通りです。

  • 大量のデータを一瞬で整理できる
  • 同じデータの重複を防げる
  • ログ解析やデータ分析に役立つ

特に、Linuxサーバーやプログラミングの現場では、データ整理の基本スキルとして非常に重要です。

まとめ

まとめ
まとめ

Linuxの基本コマンドであるsortコマンドは、テキストデータの並び替えだけでなく、重複行の削除という非常に重要な機能を持っています。特にsort -uオプションを活用することで、データの整理と重複排除を同時に実現できるため、初心者から上級者まで幅広く活用されています。テキストファイルの整形やログ解析、データ分析など、さまざまな場面で役立つため、Linuxを扱う上で必ず覚えておきたいコマンドのひとつです。

本記事では、sortコマンドの基本的な使い方から、重複行の削除方法、uniqコマンドとの違い、さらに実務での活用例まで詳しく解説しました。特に重要なのは、sort -uは内部で並び替えを行った後に重複を削除するという仕組みです。この理解があると、なぜ正しく重複が削除されるのかが明確になります。

一方でuniqコマンドは、隣接した同一行のみを対象とするため、事前にsortで並び替えを行う必要があります。この違いを理解することで、適切なコマンド選択ができるようになります。Linuxコマンドの使い分けは、効率的な作業に直結するため、しっかりと押さえておきましょう。

また、sortコマンドは-nや-rなどのオプションと組み合わせることで、数値順や逆順での重複削除も可能になります。これにより、単純なテキスト処理だけでなく、より高度なデータ処理にも対応できます。例えばログファイルのIPアドレス整理や、数値データの重複除去など、実務での応用範囲は非常に広いです。

ファイルへの出力も重要なポイントです。リダイレクトを使うことで、元のデータを保持したまま新しいファイルに結果を保存できます。安全にデータを扱うためにも、この方法は積極的に活用しましょう。

Linux初心者の方は、まずは簡単なテキストファイルを用意し、sortコマンドを実際に実行してみることをおすすめします。コマンドライン操作は、実際に手を動かすことで理解が深まります。繰り返し使うことで、自然と使いこなせるようになります。

sortコマンドによる重複行削除は、Linuxのテキスト処理の基本でありながら、非常に実用性の高い技術です。今後の学習では、grepやawk、sedなどの他のコマンドと組み合わせることで、さらに高度なデータ処理が可能になります。基礎をしっかり身につけて、応用へとつなげていきましょう。

サンプルプログラムで復習

ここで、実際のコマンドを使って重複削除の流れを復習してみましょう。


cat sample.txt
apple
banana
apple
grape
banana

sort -u sample.txt
apple
banana
grape

上記のように、sort -uを使うことで簡単に重複行を削除できます。シンプルですが非常に強力な機能です。

さらにファイルに保存する場合は次のようにします。


sort -u sample.txt > result.txt

このようにすることで、結果を別ファイルに安全に保存できます。元のデータを壊さないという点でも重要なテクニックです。

先生と生徒の振り返り会話

生徒

「sortコマンドって並び替えだけじゃなくて、重複削除もできるんですね。とても便利だと思いました。」

先生

「そうですね。特にsort -uは現場でもよく使われる重要なコマンドです。データ整理の基本として覚えておきましょう。」

生徒

「uniqコマンドとの違いも理解できました。並び替えが必要かどうかで使い分けるんですね。」

先生

「その通りです。Linuxではコマンドを組み合わせることで、より強力な処理ができます。」

生徒

「ログファイルの整理やデータ分析にも使えると聞いて、実務でも役立ちそうだと感じました。」

先生

「はい。今回学んだ内容は、Linuxの基本でありながら応用範囲が広いので、ぜひ繰り返し使って身につけてください。」

生徒

「これからはsortコマンドを積極的に使って、テキスト処理に慣れていきます。」

先生

「とても良いですね。基礎をしっかり理解すれば、Linux操作がどんどん楽しくなりますよ。」

カテゴリの一覧へ
新着記事
New1
テキスト・データ処理
patch -Rオプションの使い方を完全ガイド!初心者でもわかるLinuxでパッチを元に戻す方法
New2
テキスト・データ処理
less -Xオプションの使い方を完全ガイド!終了後も画面内容を残す方法
New3
ファイル・ディレクトリ操作
lsコマンドの-lオプションでファイルの詳細情報を一覧表示しよう!初心者でもわかる使い方と意味を徹底解説
New4
ディスクとファイルシステム管理
dfコマンドの使い方を完全ガイド!初心者でもわかるLinuxのディスク使用量確認方法
人気記事
No.1
Java&Spring記事人気No1
テキスト・データ処理
catコマンドとは?Linuxでファイル内容を表示・連結する基本
No.2
Java&Spring記事人気No2
ファイル・ディレクトリ操作
cd ~ の使い方を完全解説!ホームディレクトリへの移動方法と初心者向けLinuxコマンド入門
No.3
Java&Spring記事人気No3
ファイル・ディレクトリ操作
lsコマンドとは?Linuxでファイルやディレクトリを一覧表示する基本を初心者向けに解説
No.4
Java&Spring記事人気No4
ファイル・ディレクトリ操作
pwdコマンドとは?初心者でもわかる現在の作業ディレクトリの確認方法を解説!