重複したレコードを見つける

重複したIDや名称を見つけるのに、uniqが使えます。

takk@deb8:~$ sort -R /usr/share/dict/words | head -20 | cat -n > c

このようにして作ったファイルcを編集してフィールドの各要素を重複させます。
こんなデータになりました。

     1	anchorperson's
     2	blacks
     3	phosphoric
     4	Levine's
     5	migration's
     6	Dramamine's
     7	minibusses
     8	fetal
     9	salesperson
    10	postpones
    11	unmanageable
    12	Linda
    13	Felicia
    13	Pamela
    14	rotogravure
    15	Donetsk's
    16	Steinway
    17	Pamela
    17	minibusses
    18	forum's
    19	linesman's
    20	butler's

ではuniqを使って重複列を探します。
まずは1列目のIDについて、重複IDと重複の回数を表示。

takk@deb8:~$ cut -f1 c | sort | uniq -cd
      2     13
      2     17
takk@deb8:~$ 

左が重複回数、右がIDです。

次に、2列目。1列目を無視するオプション-fを指定して、チェックすると、IDも一緒に表示されて見つけやすいです。

takk@deb8:~$ sort -k2 c | uniq -cdf1
      2     13	Pamela
      2      7	minibusses
takk@deb8:~$ 

コメント

タイトルとURLをコピーしました