我正在寻找一种解决方案,使用unix命令计算单行中不同字符串的出现次数。
说,我有一个文件x.log,文件中的内容是:
2013.12.25 Can you provide me a solution to the question Hello World how are you 2013.12.25 Can I ask a question 2013.12.26 Can you provide me a solution to the question Hello World how are you 2013.12.26 Can I ask a question
该命令应该计算字符串“Can”和“question”的出现次数,并为我提供输出
2013.12.25 4 2013.12.26 4
答案 0 :(得分:1)
tr -s ' ' '\n' < file | sort | uniq -c | sort -n
tr
将所有空格转换为换行符。这将为每行提供一个单词。然后我们对它进行排序并通过uniq管道以获得频率计数,最后,我们按频率排序。
答案 1 :(得分:1)
awk
非常适合此类查询。
wordlist
数组的索引之一。count
数组(由每行的第一个字段索引),以匹配{{1中的任何单词}}。wordlist
数组[我查看了你未经编辑的问题,以确认每个Hello World系列实际上应该是前一行的一部分。]
count