1. ホーム
  2. linux

[解決済み】列単位で「uniq」する方法はありますか?

2022-04-06 15:59:29

質問

このような.csvファイルを持っています。

[email protected],2009-11-27 01:05:47.893000000,example.net,127.0.0.1
[email protected],2009-11-27 00:58:29.793000000,example.net,255.255.255.0
[email protected],2009-11-27 00:58:29.646465785,example.net,256.255.255.0
...

重複するメール(行全体)をファイルから削除しなければならない(つまり、ある行に含まれる [email protected] を使用しています。) どのようにすれば uniq をカンマで区切ったフィールド1のみに適用できますか?というのも man , uniq にはカラムのオプションがありません。

を使ったものを試してみました。 sort | uniq が、うまくいきません。

どうすればいいですか?

sort -u -t, -k1,1 file

  • -u 一意の場合
  • -t, カンマがデリミタになるわけです
  • -k1,1 キーフィールド1に対して

テスト結果です。

[email protected],2009-11-27 00:58:29.793000000,xx3.net,255.255.255.0 
[email protected],2009-11-27 01:05:47.893000000,xx2.net,127.0.0.1