LoginSignup
0
0

More than 1 year has passed since last update.

Linuxにて、csvファイルの値を重複チェックする方法

Posted at

csvファイルの値の重複をチェックします。

前提

test.csv
1,Hosoda,Tokyo
2,Matsuoka,Tokyo
3,Oda,Shiga
4,Takano,Osaka
4,Nagata,Kochi
5,Ito,Saitama
6,Sone,Tokyo
5,Nakku,AAne
4,Shiroichi,Hokkaido

上記csvファイルの一番目の列の値を重複チェックします。

実行

$ cat test.csv | awk -F',' '{print$1}' | sort -n | uniq -c | awk '{ if ($1>1){ print $2}}'
4
5

実行結果から4と5が重複していることがわかります。

cat test.csv | awk -F',' '{print$1}' | sort -n

test.csvファイルの値をカンマで区切った上で一番目の列の値を取得し、数字として昇順に並び替えます。

uniq -c

一番目の値が出てきた回数を、一番目の値の左隣りに出力します(※で詳細を説明します)。

awk '{ if ($1>1){ print $2}}'

重複した回数が1回より多いとき、csvファイルの1番目の値を出力します。

$ cat test.csv | awk -F',' '{print$1}' | sort -n | uniq -c
      1 1
      1 2
      1 3
      3 4
      2 5
      1 6

先頭列に重複回数が挿入されます。

注意

$ cat test.csv | awk -F',' '{print$1}' | uniq -c | awk '{ if ($1>1){ print $2}}'
4

uniq -c

このコマンドは、重複した値の数を数えますが、連続した値でないと数えてくれないので、
直前で sortコマンドを入れる必要があります。

関連リンク

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0