【问题标题】:Count the number of times a word appears in a file计算一个单词在文件中出现的次数
【发布时间】:2011-06-20 20:46:46
【问题描述】:

有什么简单的方法可以计算一个单词在文件中出现的次数?

【问题讨论】:

  • 你如何定义“单词”?它只是一个字符串,还是一个被空格包围的字符串,一个被一组字符包围的字符串?这些可以是什么字符?
  • 一个 48 个字符的字符串,除了 ascii 之外没有空格和特殊字符

标签: linux file


【解决方案1】:
fgrep "word to be counted" filename|wc -w

【讨论】:

  • 虽然此代码可能会回答问题,但提供有关它如何和/或为什么解决问题的额外上下文将提高​​答案的长期价值。
  • 这不符合 OP 的要求。
【解决方案2】:

这也将计算单行中单词的多次出现:

grep -o 'word' filename | wc -l

【讨论】:

  • 啊,-o 具有魔力。很好的答案,从来不知道。不过今天没有更多的投票了:(
  • 测试过了,为什么cat文件,然后计算同一行的多个单词?
  • 我想知道的原因是为了性能,因为我们有很多日志文件来计算那些 jsession id,非常痛苦,需要快速计算那些,但做得很好,到目前为止我喜欢这个一个最好的,谢谢 mohit6up!
  • 好答案:我没有在 man 中看到这一点。你是怎么知道的?
  • grep -ow word file | wc -l 如果你关心word boundaries
【解决方案3】:
cat filename | tr ' ' '\n' | grep 'word' | wc -l

【讨论】:

  • 这种方法效率很低。 cat 这里并不需要。 tr ' ' '\n' < filename | grep -cw 'word' 可以。
猜你喜欢
  • 2017-08-14
  • 1970-01-01
  • 1970-01-01
  • 2023-04-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多