1.在Linux系统中如何统计某个字符串出现的次数
1
2
3
4
5 grep -o targetStr filename | wc -l(单个字符串)
"targetStr"可以不加引号
grep -o targetStr_1\|targetStr_2\|targetStr_3…… filename | wc -l
"targetStr_1"这些必须加引号
但是上面的方法是不准确的,因为wc -l只是显示行数,如果一行字符串多次出现,那么结果不准确
2.Linux查看日志的几种命令
1. tail 查看实时变化的日志(比较吃内存)
退出tail命令:Ctrl+c
-f 循坏读取 -q 不显示处理信息 -v 显示详细的处理信息 -c <数目> 显示的字节数 -n 显示行数 (相当于nl命令) -pid=PID 与-f合用,表示在进程ID,PID死掉之后结束. -q,-quiet,-slient 从不输出给出文件名的首部 -s, –sleep-interval=S 与-f合用,表示在每次反复的间隔休眠S秒
用法 作用 1. tail -f filename 默认最后10行,相当于增加参数 -n 10 2. tail -n 20 filename 显示filename最后20行 3. tail -n +5 filename 从第5行开始显示文件 2. cat命令
cat命令搜索关键字附近的日志
常用用法:
查看log.log前200行
cat log.log | head -n 200
查看test.log倒数200行
cat test.log | tail -n 200
查看test.log中包含http的所有行
cat test.log | grep "http"
查看test.log中包含http的所有行,并显示前后行
cat -n test.log | grep -C 5 “http” (匹配字串那行以及前后5行)
cat -n test.log | grep -B 5 “http” (匹配字串那行以及前5行)
cat -n test.log | grep -A 5 “http” (匹配字串那行以及后5行)
3. grep命令
grep命令,文本搜索命令,可以使用正则表达式搜索文本
用法示例:查看test.log中包含http的所有行(-i忽略大小写)
1 grep -i "http" ./test.log4. sed命令
SED 查看某时间段日志
1 sed -n '/2022-06-02 13:10:30/,/2022-06-02 13:10:40/p' test.log某时间端日志输出到指定文件中
1 sed -n '/2022-06-02 13:10:30/,/2022-06-02 13:10:40/p' test.log > test20220602.log当然还可以使用vi文本编辑命令,less或者more命令进行查看
正向查找:
1 /关键字 按n键把光标移动到下一个符合条件的地方反向查找:
1 ?关键字 按shift+n 键,把光标移动到下一个符合条件的日志文件本身还是一个文件,检索命令,编辑命令,查找命令都是可以进行操作的。