Linux-shell-正则表达式

1.基础元字符

^         以什么开头

        ^h 以h为开头的内容

$         以什么结尾

.         一个任意字符

*         匹配前一个字符0个到多个

        ip*address 可以匹配到:i、ipaddress、ippaddress......等包含任意个p的字符串

.*         匹配任意长度的内容

\         使右侧的正则符号失去含义,变为字符 \** 匹配任意个*号的内容

[]         范围选择匹配符,匹配的信息不再是任意,由[]内的信息决定

        [a,z]         小写字母任意的内容

        [0-9]         数字任意的内容

        ^[a-zA-Z]         以字母开头的内容

        [^0-9] ^        写在中括号里面表示反选,不能是数字的内容

        ^[^0-9]         不是以数字开头的内容

        f[oo|ee]t |        写在中括号里面表示或 foot、feet都能匹配到

{}         设定左侧表达式的个数,需要用\转译\{\}

        6\{3\}         匹配左侧表达式3个:666

        6\{3,\}         匹配左侧表达式3个到任意个:666、666666、6666666、666666666...

2.扩展正则表达(egrep、grep -e)

+         匹配重复前一个字符1个到多个,和*类似

?         零个或者一个的前一个字符

|         或者

()         查找“组”字符串

()+         辨别多个重复的组

3.常用正则

grep -ni ‘a’ test.txt

        n表示显示行号,i表示不区分大小写,即在test.txt中找到所有包含a和A的行并显示行号

grep -n ‘[\.$]’ test.txt

        找出以.结尾的行

grep -n ‘a.*a’ test.txt

        找出包含a与a之间无字符或者任意字符的行,也就是这个行里有两个a

egrep -n ‘ab?c’ test.txt

        找出包含a与c之间有一个或者零个b的行

grep “^[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}$” test.txt

        找出ip地址格式的行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值