1

次のようなファイルがあります。

[10/May/2012:00:00:03 +0000]
[10/May/2012:00:00:03 +0000]
[10/May/2012:00:00:03 +0000]
[10/May/2012:00:00:03 +0000]
[10/May/2012:00:00:06 +0000]
[10/May/2012:00:00:06 +0000]
...

各日時の出現回数をカウントするCSVファイルを生成したいと考えています。

例えば

[10/May/2012:00:00:03 +0000], 4
[10/May/2012:00:00:06 +0000], 2
...

sed、grep、またはその両方を使用してこれを行うことは可能ですか?

4

3 に答える 3

3

これを試して:

 sort inputFile | uniq -c | awk '{print $2", "$1}'

また

 sort inputFile | uniq -c | sed 's;^\s*\([0-9]*\)\s*\(.*\)$;\2, \1;'
于 2012-05-11T13:14:26.040 に答える
2

sedにはハッシュテーブルがないため、sedについてはわかりませんが、perlワンライナーで実行できます...

perl -e 'while (<>) {chomp; $a{$_}++}; for $k (keys %a) { print "$k $a{$k}\n"; }' file.txt
于 2012-05-11T13:17:06.790 に答える
0

それは awk によって適切に処理される仕事です。次のように、すべて 1 行の awk で実行できます。

awk '{ts[$0]++;} END{for (var in ts) print var",", ts[var];}' file.txt

出力:

[10/May/2012:00:00:03 +0000], 4
[10/May/2012:00:00:06 +0000], 2
于 2012-05-11T14:12:21.993 に答える