grep命令手册
开源Linux
共 1620字,需浏览 4分钟
·
2021-09-14 08:19
grep:文本搜索工具
功能描述:
grep是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。
Unix的grep家族包括grep、egrep和fgrep。egrep和fgrep的命令只跟grep有很小不同。egrep是grep的扩展,支持更多的re元字符,等价于grep -E,支持基本和扩展的正则表达式。fgrep就是 fast grep,等价于grep -F,不支持正则表达式,按照字符串表面意思进行匹配。
命令语法:
grep [选项] [查找模式] [文件]
选项含义:
命令中各选项的含义如下表所示。
选项 | 含义 |
---|---|
-c | 计算找到搜寻文本的次数 |
-i | 搜索时,忽略大小写 |
-l | 只显示匹配行的文件名 |
-n | 显示匹配文本所在行号 |
-v | 反向选择,显示不包含匹配文本的所有行 |
-x | 强制模式仅完全匹配一行 |
-w | 强制模式仅完全匹配字词 |
-q | 禁止输出任何结果,以退出状态表示搜索是否成功 |
-s | 不显示错误消息 |
-r | 递归搜索 |
参数实例:
实例1
查找字符:
// 将/etc/passwd 中包含mysql字符所在行内容取出
[root@cnLinuxer ~]# grep mysql /etc/passwd
mysql:x:1001:1001::/home/mysql:/sbin/nologin
// 将/etc/passwd中包含mysql所在行内容取出,并显示行号
[root@cnLinuxer ~]# grep -n mysql /etc/passwd
22:mysql:x:1001:1001::/home/mysql:/sbin/nologin
实例2
反向查找:
//将/etc/passwd中不包含nologin的行取出
[root@cnLinuxer ~]# grep -v nologin /etc/passwd
实例3
递归查询:
// 在/test目录下查找包含字符“开源Linux”的文件,并显示所在行内容
[root@cnLinuxer ~]# grep -r "开源Linux" /test
/test/readme.txt:欢迎关注微信公众号:开源Linux,收获每日技术干货。
// 在/test目录下查找包含字符“开源Linux”的文件,并只显示匹配的文件
[root@cnLinuxer ~]# grep -r -l "开源Linux" /test
/test/readme.txt
实例4
行首与行尾字节 ^ $
// 显示/etc/passwd文件中以“^my”开头的行
[root@cnLinuxer ~]# grep ^my /etc/passwd
mysql:x:1001:1001::/home/mysql:/sbin/nologin
// 显示以nologin结尾的行,并显示行号
[root@cnLinuxer ~]# grep -n nologin$ /etc/passwd
// 不显示文本中的空行
[root@cnLinuxer test]# grep -v ^$ readme.txt
有收获,点个在看
评论