Bash
如何使用命令行計算文本文件中單詞的出現次數?
我有一個大的 JSON 文件,它在一行上,我想使用命令行來計算文件中某個單詞的出現次數。我怎樣才能做到這一點?
$ tr ' ' '\n' < FILE | grep WORD | wc -l
where
tr
用換行符替換空格,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\>'