我有一個目錄樹,其中有一堆文件夾和子文件夾以及這些子文件夾中的一堆文件。我需要在每個文件中獲得單詞「Hello」的計數,並將結果顯示爲'File'a'has'Hello'n次','File'b'''Hello'm times'等等。我如何在Linux中編寫腳本,以便我可以在每個文件中獲得單詞hello的單詞計數。瀏覽網頁後,我嘗試了一些使用'wc'的grep組合,但是這給了我所有文件夾中所有文件的總計數。得到所有文件中的單詞計數
感謝
我有一個目錄樹,其中有一堆文件夾和子文件夾以及這些子文件夾中的一堆文件。我需要在每個文件中獲得單詞「Hello」的計數,並將結果顯示爲'File'a'has'Hello'n次','File'b'''Hello'm times'等等。我如何在Linux中編寫腳本,以便我可以在每個文件中獲得單詞hello的單詞計數。瀏覽網頁後,我嘗試了一些使用'wc'的grep組合,但是這給了我所有文件夾中所有文件的總計數。得到所有文件中的單詞計數
感謝
嘗試這樣:
find . -type f | xargs -n1 grep "Hello" -c
添加-type f
到find
確保它只返回文件,而不是目錄。將-n1
添加到xargs
可以使find
返回的每個文件都獲得自己的grep
調用,以便您可以獲得每個文件的計數。 grep
的-c
參數返回匹配的數量而不是每個匹配。
上面的表達式會計算其中有'Hello'的行數。如果你需要Hellos的總數,而不僅僅是擁有Hello的行數,你需要做更復雜的事情。您可以使用grep上的-o
選項來打印行的匹配部分,然後將其與wc -l
結合以獲取總髮生次數。
看起來不錯尋找的*行*含 「你好」 的數量,但我仍然擔心字符串在一行中出現多次的情況。在這種情況下,grep只會計數一個。 @ user1455116,那是你想要的嗎? –
好點...我會更新我的答案。 –