Linux统计文本中某个字符串出现的次数

时间:2023-03-09 03:19:08
Linux统计文本中某个字符串出现的次数

常用的有如下两种方式:

1.VIM

用vim打开文件,然后输入:

:%s/hello//gn

如下图:

Linux统计文本中某个字符串出现的次数

图中的例子就是统计文本中”hello”字符串出现的次数

说明:

%s/pattern/string/flags 意思是把pattern替换为string

参数说明:

% - 指明操作区间,%表示全文本;可以使用1,$或者行区间代替 %s相当于1,$s

s – substitute,表示替换

g是全局

pattern - 要查找的字符串

// - 替代文本应该放在这里,两个斜杠中间没有任何字符表示无替代文本

g – Replace all occurences in the line. Without this argument, replacement occurs only for the first occurence in each line.

n – Report the number of matches, and do not actually substitute. 这是核心功能,同时也说明为什么//之间可以添加任意字符。

一些引申出的应用:

(1) :k,ls/pattern//gn

统计k行到l行出现pattern的次数

(2) :%s/pattern//gn

统计在当前编辑文本出现的次数

2.GREP配合wc命令 统计在文件中出现的行数

grep -o "hello" demo.log | wc -l

如下图:

Linux统计文本中某个字符串出现的次数

另外附上几个grep常用的参数:

-c 只显示有多少行匹配 ,而不具体显示匹配的行

-i 在字符串比较的时候忽略大小写

-n 在每一行前面打印该行在文件中的行数