カテゴリー
【Awk&Sed活用講座】CSVファイルから重複データを見つける&重複をカウントする
※ 当ページには【広告/PR】を含む場合があります。
2022/05/04
2022/09/30
Uniqコマンドで重複を操作する
EMPLOYEE
$ EMPLOYEE=$(cat <<EOF
山下モゲ雄,営業部,本社,3年
島田フガ子,経理部,名古屋支部,15年
上岡ムメ美,海外部,メキシコ支部,8年
岡田ピポ太,製造部,山口工場,8年
佐藤ゴバ文,製造部,山口工場,11年
田川ポゥ子,人事部,本社,9年
沢口モフ代,人事部,本社,4年
銭形ガメ吉,海外部,メキシコ支部,11年
上岡ムメ美,営業部,本社,23年
京谷マハ次,製造部,山口工場,3年
園田フマ由,人事部,本社,17年
山田ケム紀,営業部,本社,15年
田川ポゥ子,製造部,ベトナム工場,12年
満田クタ郎,営業部,本社,2年
島寺ルン大,営業部,本社,18年
香下ウル蔵,製造部,山口工場,5年
田頭モフ雄,営業部,名古屋支部,16年
岡田ピポ太,営業部,本社,4年
蒲田ウオ奈,海外部,メキシコ支部,9年
郷田ポポ生,営業部,名古屋支部,4年
梅岡ボル伍,経理部,本社,25年
香下ウル蔵,営業部,名古屋支部,2年
岡田ピポ太,製造部,山口工場,11年
亀川ヲル士,製造部,山口工場,14年
EOF
)
Uniq
重複行の出現回数を調べる
重複していない行だけ出力する
重複した行だけ出力する
Cutコマンド
Sortコマンド
$ echo "$EMPLOYEE" | cut -f1 -d, | sort | uniq
上岡ムメ美
亀川ヲル士
京谷マハ次
佐藤ゴバ文
園田フマ由
山下モゲ雄
山田ケム紀
岡田ピポ太
島寺ルン大
島田フガ子
梅岡ボル伍
沢口モフ代
満田クタ郎
田川ポゥ子
田頭モフ雄
蒲田ウオ奈
郷田ポポ生
銭形ガメ吉
香下ウル蔵
Awkで重複を見つける
$ echo "$EMPLOYEE" | awk -F, '!name[$1]++ { print $0; }'
山下モゲ雄,営業部,本社,3年
島田フガ子,経理部,名古屋支部,15年
上岡ムメ美,海外部,メキシコ支部,8年
岡田ピポ太,製造部,山口工場,8年
佐藤ゴバ文,製造部,山口工場,11年
田川ポゥ子,人事部,本社,9年
沢口モフ代,人事部,本社,4年
銭形ガメ吉,海外部,メキシコ支部,11年
京谷マハ次,製造部,山口工場,3年
園田フマ由,人事部,本社,17年
山田ケム紀,営業部,本社,15年
満田クタ郎,営業部,本社,2年
島寺ルン大,営業部,本社,18年
香下ウル蔵,製造部,山口工場,5年
田頭モフ雄,営業部,名古屋支部,16年
蒲田ウオ奈,海外部,メキシコ支部,9年
郷田ポポ生,営業部,名古屋支部,4年
梅岡ボル伍,経理部,本社,25年
亀川ヲル士,製造部,山口工場,14年
$ echo "$EMPLOYEE" | awk -F, '!_[$1]++'
Sedで重複を見つける
LC_ALL=C
$ echo "$EMPLOYEE" | sort | cut -f1 -d, | LC_ALL=C sed -e '
$!N #最終行以外は全て先読みで次の行をパターンスペースに改行&追加
/^\(.*\)\n\1$/!P #2行目に同じ行パターン来た場合、パターンスペースの最初の改行までを表示
D #パターンスペースを空にして次の入力行からプログラムを繰り返す
'
#👇出力
上岡ムメ美
亀川ヲル士
京谷マハ次
佐藤ゴバ文
園田フマ由
山下モゲ雄
山田ケム紀
岡田ピポ太
島寺ルン大
島田フガ子
梅岡ボル伍
沢口モフ代
満田クタ郎
田川ポゥ子
田頭モフ雄
蒲田ウオ奈
郷田ポポ生
銭形ガメ吉
香下ウル蔵
記事を書いた人
ナンデモ系エンジニア
主にAngularでフロントエンド開発することが多いです。 開発環境はLinuxメインで進めているので、シェルコマンドも多用しております。 コツコツとプログラミングするのが好きな人間です。
カテゴリー