用于计算文件中相似单词的Linux shell脚本

时间:2012-10-03 04:15:16

标签: linux shell command-line

我的日志文件格式如下:

201208290101
201208290101
201208290101
201208290101
201208290101
201208291222
201208291222
201208291222
201208291222
201209300242
201209300242
201209300242

我想计算在某个特定时间发生的事件数量,所以我必须计算 日志文件中出现一些特定时间戳的次数。例如,上面的输出类似于:

201208290101  = 5
201208291222  = 4
201209300242  = 3

关于如何计算这个的任何建议?

3 个答案:

答案 0 :(得分:4)

只需通过uniq -c传送文件。

$ uniq -c
201208290101
201208290101
201208290101
201208290101
201208290101
201208291222
201208291222
201208291222
201208291222
201209300242
201209300242
201209300242
^D
      5 201208290101
      4 201208291222
      3 201209300242

答案 1 :(得分:1)

你可以awk关联数组:

 awk '{a[$0]++;} END{for(i in a) print i," = ", a[i]}' filename

答案 2 :(得分:1)

如果一切都已排序,那么

cat yourfile.txt | uniq -c

否则,您需要先对其进行排序,然后才能使用uniq:

cat yourfile.txt | sort | uniq -c