在 Linux 系統中,可以使用 grep
、tr
和 wc
命令組合來實現對文本文件中單詞的計數,同時忽略停用詞。假設你有一個包含停用詞的文本文件 stopwords.txt
,內容如下:
the
and
is
in
it
現在你想統計另一個文本文件 input.txt
中的單詞數量,同時忽略 stopwords.txt
中的停用詞。你可以使用以下命令:
grep -oE '\w+' input.txt | tr ' ' '\n' | grep -vE "($(cat stopwords.txt | tr ' ' '|'))" | wc -l
解釋:
grep -oE '\w+' input.txt
:從 input.txt
文件中提取所有單詞(連續的字母、數字和下劃線)。tr ' ' '\n'
:將單詞之間的空格替換為換行符,使每個單詞單獨一行。grep -vE "($(cat stopwords.txt | tr ' ' '|'))"
:使用擴展正則表達式過濾掉 stopwords.txt
中的停用詞。wc -l
:計算過濾后的行數,即單詞數量。注意:這個命令假設停用詞文件中的單詞大小寫敏感。如果你想忽略大小寫,可以將 grep -vE
部分改為 grep -i -vE
,或者在讀取停用詞文件時將所有單詞轉換為小寫(或大寫):cat stopwords.txt | tr ' ' '| | tr '[:upper:]' '[:lower:]'
。