整理一下grep常用操作,就当记笔记啦
一、介绍
grep是Linux中最常用的"文本处理工具"之一,全称是Global Regular Expression Print,结合正则表达式,功能超级强大
二、使用格式
Usage: grep [OPTION]... PATTERN [FILE]... (grep --help提示)
option:grep 使用参数
pattern:正则表达式
三、常用参数
-o:只显示符合条件的字符串,每个符合条件的字符串单独显示一行
-P:表示使用兼容perl的正则引擎(个人超级喜欢用)
-r: 递归查找
-i:忽略大小写
-n:显示结果所在行号
-c:统计匹配到的行数
-v:输出不带关键字的行
-w:匹配整个单词
-A(B/C)x:在输出的时候包含结果所在行之后(前/前后)的指定行数
A:after,B: before, C:context/center
注:Cx 中 C可以省略
-e:实现多个选项的匹配
-f:指定规则文件
-l(L):查询多文件时只输出包含(不)匹配字符的文件名。
-d: skip 忽略子目录
四:应用实例
新建文档tmp.txt,内容如下
grep 'name' tmp.txt
想把Name 这一行也搜索出来 :grep -i 'name' tmp.txt
grep -ic 'name' tmp.txt
grep -in 'name' tmp.txt
grep -ino 'name' tmp.txt
grep -iA2 'name' tmp.txt
grep -iw 'hanli' tmp.txt
(hanlilaopo不是一个单词,所以此行没grep出来)
grep -v 'nangongwan' tmp.txt
grep -e 'addr' -e 'Addr' tmp.txt
grep -P '(a|A)ddr' tmp.txt(跟前面效果一样)
小例子:
1)查找自己java进程:
ps -ef | grep -i java| grep -v 'grep'
ps -ef | grep -i [j]ava
下面一个命令取了个巧,朋友们能看出来吗。。。
2)过滤掉空行:
grep -vP '^$' filename
grep "." filename
上面一个更通用,因为正则表达式还能改成过滤空格(注释)之类的
3)有时候你写过一个脚本,但是记不住了,只记得零星内容,就可以使用递归查找:
grep -r "记得的内容" .
4)查看日志,只关注特定关键词的行:
tail -f xxx.log | grep -i 'aaaa'
5)统计一段时间内 日志中出现次数
grep -i 'aaa' xxx.log | wc -l
grep -ic 'aaa' xxx.log
grep 强大远超我们的想象,配合正则表达式,能发挥出想象不到的威能,具体的功能还需要大家一起摸索呀。。。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有