統計乙個檔案中某個字串的個數,其實就是在在一塊沙地裡面找石頭,有的人看到石頭以後,在上面做個標記(grep),然後記住自己做了多少個標記;有的
人看到石頭以後,把它挖了(tr),最後統計自己挖了多少石頭;有的人看到石頭以後,把它跳過去(awk),然後統計自己跳了多少次。
這是我用的的檔案
[root@bzhou test]# cat file
hafsdha
hahafsdfsdhaha
haha
我想匹配的是『haha』這個字串
1.grep的-o選項
[root@bzhou test]# grep -c 'haha' file
2最開始的時候是用-c這個選項,不過-c只能統計一行的,如果一行裡面有多個匹配的字串,那-c就無能為力了。
這個是正確的
[root@bzhou test]# grep -o 'haha' file | wc -l
32. awk
這個東西要感謝cu上的blackold。
[root@bzhou test]# awk -v rs='haha' 'end ' file
-v 去設定乙個變數的值,rs是記錄的分隔符,預設的是新行(\n),就是說awk按照一行一行讀資料,但是現在rs為'haha'後,就按'haha'讀資料了,nr為已讀的記錄數,n個記錄是被n-1個分隔符分開的,所以就是--nr了。
3.tr
嚴格意義上說,tr匹配不了字串,只能去匹配單個字元。這裡就匹配這個檔案中『h』的個數。
[root@bzhou test]# tr -cd 'h' 8
[root@bzhou test]# grep -o 'h' file | wc -l
8-d可以刪除某個字元,如果只有-d就會輸出刪除特定字元後的字串,但是-c可以反顯,這就是顯示了被刪除的字元。然後可以用wc -c去統計下字元的個數。
Shell程式設計 統計乙個檔案中的詞頻
寫乙個 bash 指令碼以統計乙個文字檔案 words.txt 中每個單詞出現的頻率。為了簡單起見,你可以假設 words.txt只包括小寫字母和 每個單詞只由小寫字母組成。單詞間由乙個或多個空格字元分隔。示例 假設 words.txt 內容如下 the day is sunny the the t...
linux 建立乙個檔案
1.建立檔案 vi 例一 建立檔案a.txt。vi a.txt hello everyone wq 在退出時,直接輸入 wq會發現退不出去,退出方法是 編輯完成後按esc,然後輸入 q就是退出 還有 wq是儲存後退出,加感嘆號是表示強制 2.touch命令功能 修改檔案時間 touch filea,...
如何在 Linux 中查詢乙個檔案
對於新手而言,在 linux 中使用命令列可能會非常不方便。沒有圖形介面,很難在不同資料夾間瀏覽,找到需要的檔案。本篇教程中,我會展示如何在 linux 中查詢特定的檔案。第一步要做的是通過 ssh 連線到你的 linux 在 linux 中查詢檔案有兩種方法。一種是使用find命令,另外一種是使用...