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

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

More than 3 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にご注意ください。
安全かつ正確な動作を保障しきれませんので、ご了承ください。

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
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  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