Shell三剑客之--grep

egrep(grep -E) 支持正则表达式的拓展元字符

1、运用正则,判断需要[[ ]]

num1=1
[[ $num1 =~ ^[0-9]+$ ]] && echo "yes" || echo "no"

num3=1b1
[[ $num3 =~ ^[0-9]+$ ]] && echo "yes" || echo "no"

2、* 0或多个

useradd abrt
grep 'abc*' /etc/passwd

3、\< 词首定位符号 \>词尾定位符号

cat a.txt | egrep '\<[Jj]ack\>'

拓展:“  :% s/\<[Jj]ack\>/123/g  ”

vim jack.txt

 Jack JACK JAck jackly

:% s/\<[Jj]ack\>/123/g

4、^以什么开头

grep '^root' /etc/passwd

5、$以什么结尾

grep 'bash$' /etc/passwd

6、 . 匹配单个字符

grep 'r..t' /etc/passwd

grep 'r.t' /etc/passwd

7、.* 任意多个字符

grep 'r.*t' /etc/passwd

8、[ ] 匹配方括号中的任意一个字符

grep 'Root' /etc/passwd
grep '[Rr]oot' /etc/passwd

9、[ - ] 匹配指定范围内的一个字符

grep [a-z]oot /etc/passwd

10、[ ^ ] 匹配不在指定组内的字符,取反得意思

^在[]内表示取反,^在[]外表示以什么开头

grep '[^0-9]oot' /etc/passwd

grep '[^0-9A-Z]oot' /etc/passwd

grep '[^0-9A-Za-z]oot' /etc/passwd

grep '[a-z]oot' /etc/passwd

grep '^[rc]oot' /etc/passwd

11、\(  \)匹配后的标签

vim file1.txt

IPADDR=192.168.1.123 
GATEWAY=192.168.1.1 
NETMASK=255.255.255.0 
DNS=114.114.114.114

:% s#\(192.168.1.\)123#\12#

:% s#\(192.\)\(168.\)\(1.\)2#\1\2\35#

:% s#\(192.\)\(168.\)\(1.\)\(5\)#\1\26.\4#

12、+ 匹配一个或多个前导字符

egrep 'ro+t' /etc/passwd

13、? 匹配零个或一个前导字符

egrep 'ro?t' /etc/passwd

14、a|b    匹配a或b

netstat -anlp|egrep ':80|:22'

cat /etc/passwd | egrep 'root|alice'

15、x{m} 字符x重复m次

[root@localhost ~]# cat a.txt
love
love.
loove
looooove

cat a.txt | egrep 'o{2}' a.txt

cat a.txt | egrep 'o{2,}' a.txt

cat a.txt | egrep 'o{6,7}' a.txt

16、扩展正则表达式元字符

+                               匹配一个或多个前导字符
[a-z]+ove
?                               匹配零个或一个前导字符 
lo?ve
a|b                             匹配a或b
love|hate
(..)(..)\1\2                    标签匹配字符
(love)able\1er
x{m}                            字符x重复m次
o{5
x{m,}                           字符x重复至少m次
o{5,}
x{m,n}                          字符x重复m到n次
o{5,10}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值