開發與維運

Linux中如何統計某個字符串個數?

Linux 系統下,有時候,我們可能要對一個日誌文件進行分析。比如,分析日誌文件中某個單詞或者某個特殊字符串出現了多少次。

對於匹配統計,一般用到正則方法,下面總結了幾個統計字符串個數的方法。

方法一:使用 grep 命令

grep -o '字符串' file |wc -l

方法二:使用awk命令進行統計

awk -v RS="@#$j" '{print gsub(/字符串/,"&")}' file

方法三:另一種使用awk命令進行統計的方法

awk  '{s+=gsub(/字符串/,"&")}END{print s}' file

備註:上面的 file 是要統計的文件名。上面的字符串換成你具體要統計的內容。

awk簡介

awk是一個強大的文本分析工具,相對於grep的查找,sed的編輯,awk在其對數據分析並生成報告時,顯得尤為強大。

簡單來說awk就是把文件逐行的讀入,以空格為默認分隔符將每行切片,切開的部分再進行各種分析處理。

實例

假設現在一個文件裡面的內容如下:

[root@ihh logs]# cat test.txt 
userid:121212
userid:232323
userid:3434
username:3434
username:4343

然後我要統計 userid 在 test.txt 文件裡出現了多少次,那麼根據上面提供的命令,可以這樣操作:

[root@ihh logs]# grep -o 'userid' test.txt |wc -l
3

[root@ihh logs]# awk -v RS="@#$j" '{print gsub(/userid/,"&")}' test.txt
3

[root@ihh logs]# awk '{s+=gsub(/userid/,"&")}END{print s}' test.txt
3

雲服務器ECS地址:阿里雲·雲小站

Leave a Reply

Your email address will not be published. Required fields are marked *