Help us understand the problem. What is going on with this article?

Linuxコマンドで重複している行(だけ)を見つけたいとき (sortとuniqコマンド)

More than 5 years have passed since last update.

【こんな貴方の助けになれば】

・Excelの機能で重複削除すると、重複してた行が消えてしまうから、何が重複してたのか、知りたい。(関数使えばわかるけど、そんなの面倒)

・そもそも、Excel使いたくないし、Linuxサーバ上だけで完結させたい。

【ポイント】

重複関連は、uniqコマンドで、いける。

ただ、uniqコマンドは、ソートしていないとダメらしい。
(ここは、Excelのvlookup関数と一緒ですね)
なので、先にsortコマンドを使用します。

【コマンド例】

uniqの -d オプションで、重複行を標準出力することができます。

sort "重複見つけたい.txt" | uniq -d


もちろん、リダイレクトすればファイルに出力されます。
下記は、重複している行だけ、出力されます。

sort "重複見つけたい.txt" | uniq -d > "重複してる行だけになる.txt"


下記は、重複していない行だけ、出力されます。(重複削除後のファイルを生成)

sort "重複見つけたい.txt" | uniq > "重複してない行だけになる.txt"

【コマンド実行例】

■元のファイル

$ cat hogehoge.txt
AAAAA
BBBBB
19000
BBBBB
AAAAA
19000
9000

■重複行を削除した結果を表示

$ sort hogehoge.txt | uniq
19000
9000
AAAAA
BBBBB

■重複している行だけを表示

$ sort hogehoge.txt | uniq -d
19000
AAAAA
BBBBB

【注意点】

当たり前ですが、ファイルサイズが大きいものを実施する際は、メモリやCPUにご注意ください。
安全かつ正確な動作を保障しきれませんので、ご了承ください。

nijibox
ニジボックスの開発は、社内のUI/UXデザインチームと連携をとりながらワンストップで行う開発支援サービスです。Reactを始めPHP(Laravel)・Ruby on Rails、Swift・Kotlinを使った開発実績も多く、バックエンドからアプリまで幅広く対応しています。現在、リクルートの大規模サービスでのモダン開発に興味のあるフロントエンドエンジニアを積極採用中です!
https://www.wantedly.com/companies/nijibox
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away