【gerp】 Global Research 根据模式,搜索文本,并将符合模式的文本行显示在屏幕中

gerp是一款用于全局搜索文本的工具,可以根据模式匹配文本并显示结果。它支持忽略大小写、高亮显示匹配项、反向查找、只显示匹配部分等功能。此外,文章详细介绍了正则表达式在gerp中的应用,包括元字符、匹配次数、位置锚定、分组和后向引用等概念,以及如何使用gerp结合正则表达式进行高效文本检索。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

【gerp】 Global Research 根据模式,搜索文本,并将符合模式的文本行显示在屏幕中

-i 忽略大小写
--color[=when] --colour[=when]   匹配到的字符添加颜色
-v 反向查找,显示没有被匹配到的行
-o 只显示被模式匹配到的字符串
-E 使用扩展正则表达式
-A # 显示匹配到的字符之后的#行
-B # 显示匹配到的字符之前的#行
-C # 显示匹配到的字符前后都扩展#行

正则表达式
(注意linux下的正则表达式是工作在贪婪模式下的)
元字符
【.】表示匹配任意单个字符
【[]】表示指定范围内的任意单个字符
【[^]】表示指定范围外的任意单个字符


匹配次数:
【*】匹配其前面的字符任意次
例如 a,b,aab,acb,adb,amnb 使用a*b匹配到的结果只有 b,aab
【.*】匹配任意长度的任意字符


【?】前面的字符可有可无(注意?在使用是需要\?来转译字符)
【\{m,n\}】匹配其前面的字符最少m次,最多n次


位置锚定
【^】锚定行首,此字符后面的任意内容必须出现在行首
【$】锚定行尾,使字符前面的任意内容必须出现在行尾
【^$】表示空白行


【\<】或者【\b】其后面的任意字符必须作为单词的首部出现
【\>】或者【\b】其前面的任意字符必须作为单词的尾部出现
例如:
[root@gdy ~]# grep "root\>" gandiangg.txt 
this is root
the user is mroot
chroot is a command
[root@gdy ~]# grep "\<root" gandiangg.txt 
this is root
rooter is a dog's name


分组:
【\(\)】
【\(ab\)*】ab可以出现1次,0次,或者任意次(注意括号带有记忆效果)
后向应用
\1匹配第1个左括号与之对应的右括号所匹配的字符
\2匹配第2个左括号与之对应的右括号所匹配的字符
\n匹配第n个左括号与之对应的右括号所匹配的字符

扩展正则表达式
字符匹配:
【.】表示匹配任意单个字符
【[]】表示指定范围内的任意单个字符
【[^]】表示指定范围外的任意单个字符
[:space:]:表示空白字符即空格
[:punct:]:标点符号
[:lower:]:小写字母
[:upper:]:大写字母
[:alpha:]:大小写字母
[:digit:]:数字
[:alnum:]:数字和大小写字母


次数匹配
【*】匹配其前面的字符任意次
【?】匹配其前面的字符0次或1次
【+】匹配其前面的字符至少一次
【{n}】匹配前面的字符n次
【{m,n}】匹配其前面的字符最少m次,最多n次

位置锚定:
【^】锚定行首,此字符后面的任意内容必须出现在行首
【$】锚定行尾,使字符前面的任意内容必须出现在行尾
【^$】表示空白行
【\<】或者【\b】其后面的任意字符必须作为单词的首部出现
【\>】或者【\b】其前面的任意字符必须作为单词的尾部出现


分组:
【()】分组\1,\2,\3....

或者
【|】或者指or
例如 C|cat 指C或者cat   注意:并不是指Cat或者cat
(C|c)at才表示为Cat或者cat

例如:
找出/boot/grub/grub.conf文件中1-255之间的数字:
egrep --color '\<([1-9]|[1-9][0-9]|1[1-9][1-9]|2[0-5][0-5])\>' /boot/grub/grub.conf 
在上面正则表达式中()能将括号内的所有组和提取


找出ifconfig执行结果中的ip地址
ifconfig | egrep -o --color '\<([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]))\.(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]))\.(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]))\>'
上面与下面效果一样
ifconfig | egrep -o --color '(\<([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>\.){3}\<([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>'
相关命令


正确查询ip(严格要求)
ifconfig | egrep -o --color '\<([1-9]|[1-9][0-9]|1[0-9][0-9]|2[01][0-9]|22[0-3])\>(\.\<([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-4])\>){2}\.\<([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-4])\>'

【IPv4】
IPv4地址可分为A B C D E共五类
A: 1-127
B:  128-191
C: 192-223












【egrep】==【grep -E】
【fgrep】快速搜索,不支持正则表达式
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值