如何使用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
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP