同じ行が何度も出てくるテキストをスッキリ整理する方法

テキスト処理
スポンサーリンク

テキストファイルを扱っていると、同じ行が何度も繰り返し出てきて「見づらい」「扱いにくい」と感じることはありませんか。

たとえば、次のようなケースです。

  • ログファイルに同じエラーメッセージが何度も出力されている
  • CSVやリストの中で同じデータが繰り返し含まれている
  • メモやコピーを重ねて作ったテキストに重複が多い

こうした「不要な重複行」をそのまま残しておくと、後からの確認や分析がやりにくくなり、作業効率が落ちてしまいます。
この記事では、テキストをスッキリ整理するために、重複行を削除する方法を紹介します。

重複行を削除するメリット

テキストから重複を取り除くことで、次のようなメリットがあります。

  • 見やすさの向上:同じ行がなくなり、情報を把握しやすくなる
  • データ分析が正確になる:ユニークな値だけが残るため、重複カウントを避けられる
  • 処理の効率化:無駄なデータが減ることで検索や集計が速くなる
  • エラー調査が楽になる:同じエラーログが連続して出ても、種類ごとに確認できる

特に、大量のログやCSVファイルを扱う場合は、重複削除の効果が大きく現れます。

重複行を整理する基本的な考え方

テキスト内の重複を取り除くには、次の2ステップで考えると分かりやすいです。

  1. 並べ替え(sort)
    → 同じ内容の行を隣り合わせにする
  2. 重複の削除(uniq)
    → 隣り合った同じ行を1つにまとめる

この仕組みを使えば、何百行・何千行のテキストからでも、簡単にユニークなデータだけを残せます。

実例:重複行を削除する方法

基本の重複削除

sort data.txt | uniq > cleaned.txt
  1. sortでテキストを並べ替え
  2. uniqで重複を削除
  3. 結果を cleaned.txt に保存

これで、重複行を取り除いたテキストが完成します。

出現回数も確認する

sort data.txt | uniq -c

各行が何回出現したかを数字付きで表示します。
「どの行がよく現れるのか」を把握したいときに便利です。

完全一致でなく「連続する重複」を削除する

uniq logfile.txt

ファイルを並べ替えずに実行すると、連続して現れる同じ行だけをまとめます。
ログ確認など「同じメッセージが連続している場合だけ整理したい」ときに有効です。

標準検索や手作業では限界がある

もちろん、エディタで「検索して削除」も可能ですが、以下の問題があります。

  • ファイルが大きいと処理が重い
  • 重複が数百・数千行に及ぶと、手作業では現実的でない
  • 出現回数を数えるのが難しい

このため、シンプルなコマンドで重複削除を行う方が効率的です。

まとめ

同じ行が繰り返し現れるテキストは、そのままでは扱いづらく、分析や整理の妨げになります。

  • sortで並べ替え
  • uniqで重複削除
  • 必要に応じて「出現回数表示」で分析

この流れを覚えておけば、大量のログやCSVでもスッキリ整理できるようになります。
重複が多くて困っている人は、ぜひ取り入れてみてください。

スポンサーリンク
Bash玄

はじめまして!Bash玄です。

エンジニアとしてシステム運用に携わる中で、手作業の多さに限界を感じ、Bashスクリプトを活用して業務を効率化したのがきっかけで、この道に入りました。「手作業は負け」「スクリプトはシンプルに」をモットーに、誰でも実践できるBashスクリプトの書き方を発信しています。

このサイトでは、Bashの基礎から実践的なスクリプト作成まで、初心者でもわかりやすく解説しています。少しでも「Bashって便利だな」と思ってもらえたら嬉しいです!

# 好きなこと
- シンプルなコードを書くこと
- コマンドラインを快適にカスタマイズすること
- 自動化で時間を生み出すこと

# このサイトを読んでほしい人
- Bashに興味があるけど、何から始めればいいかわからない人
- 定型業務を自動化したい人
- 効率よくターミナルを使いこなしたい人

Bashの世界に一歩踏み出して、一緒に「Bash道」を極めていきましょう!

Bash玄をフォローする

コメント