Bash

如何使用命令行計算文本文件中單詞的出現次數?

  • April 4, 2019

我有一個大的 JSON 文件,它在一行上,我想使用命令行來計算文件中某個單詞的出現次數。我怎樣才能做到這一點?

$ tr ' ' '\n' < FILE | grep WORD | wc -l

wheretr用換行符替換空格,grep過濾所有匹配 WORD 的結果行併wc計算剩餘的行。

甚至可以使用grep 選項保存該wc部分:-c

$ tr ' ' '\n' < FILE | grep -c WORD

-c選項由 POSIX 定義。

如果不能保證單詞之間有空格,則必須使用其他字元(作為分隔符)來替換。例如替代tr零件是

tr '"' '\n'

要麼

tr "'" '\n'

如果要替換雙引號或單引號。當然,您也可以使用tr一次替換多個字元(考慮不同類型的空格和標點符號)。

如果您需要計算 WORD 而不是 prefixWORD、WORDsuffix 或 prefixWORDsuffix,您可以將 WORD 模式括在開始/行尾標記中:

grep -c '^WORD$'

在我們的上下文中,這相當於詞開始/結束標記:

grep -c '\<WORD\>'

引用自:https://unix.stackexchange.com/questions/2244