同じ行の総行数と固有数を取得する方法

同じ行の総行数と固有数を取得する方法

次の行を含むファイル(test.csv)があります。

2016-08-23 00:00:00,270113184103681474

2016-08-23 00:00:00,270113184101689340

2016-08-23 00:00:00,270113184103681474

2016-08-23 00:00:00,270113184101689340

2016-08-23 01:00:00,270113184103681474

2016-08-23 01:00:00,270113184101689340

最初の列の各列の合計行数と2番目の列の一意の項目数を取得したいと思います。上記の行に必要な出力は次のとおりです。

2016-08-23 00:00:00, 4, 2

2016-08-23 01:00:00, 2, 2

単純なgrep / awkソリューションはありますか?

ベストアンサー1

素朴な解決策は、各発生回数を数え、以前に見たことがないかどうかを追跡することです。

だから:

awk -F, '{ t[$1]++; seen[$0]++; if (seen[$0] == 1) { u[$1]++ } }
         END { for (a in t) { print a "," t[a] "," u[a] } }'

最初の行は、その日付がに表示される合計回数を追跡しますt。各行を何回見たかを追跡し、seen今回が初めて見たものであればそれが固有であることを知ってに計算しますu

2行目は結果を繰り返し印刷します。

おすすめ記事