如何使用Shell指令碼統計文字檔案中單詞的出現次數?


Linux shell 指令碼擁有許多強大的工具來處理檔案中的資料。其中一項功能是查詢模式並計算匹配模式出現的次數。一個例子就是計算給定檔案中特定單詞出現的次數。這是透過組合用於模式搜尋和計數的命令來實現的。以下是可用於此需求的方法。

輸入檔案

讓我們使用以下檔案來演示這些例子。

$ cat inspire.txt
Mastering anything needs practice.
It also needs patience.
And it needs time and other resources.

使用 grep 和 wc

grep 命令查詢模式,但它有一些開關可以用來每次找到模式時在新的一行列印它,即 -o 選項。我們還可以使用 -i 開關來忽略找到的單詞的大小寫。最後,結果可以管道到 wc 以獲得最終計數。在這個例子中,我們計算單詞“needs”出現的次數。

方法

我們在檔案中搜索單詞“needs”。使用 -o 開關將每個輸出作為新的一行。使用 -i 忽略大小寫。然後將其透過管道傳輸到 wc 以獲取行數,最終也就是單詞出現的次數。

$ grep -o -i needs inspire.txt | wc -l

執行上述程式碼得到以下結果:

3

使用 tr 命令

tr 命令將一個字串轉換為另一個字串。因此,我們將所有空格轉換為換行符,然後使用 grep 搜尋模式。最後,使用 grep 的 -c 開關進行計數和 -i 開關忽略大小寫來計算特定單詞出現的次數。

tr '[:space:]' '[
*]' < inspire.txt | grep -i -c it

執行上述程式碼得到以下結果:

2

更新於:2020年1月3日

9K+ 瀏覽量

啟動你的職業生涯

透過完成課程獲得認證

開始學習
廣告
© . All rights reserved.