Linux中正则表达式的使用详解

在讲正则表达式之前先说一下grep命令的使用

grep [-a c i n v] '搜索字符串' 文件名

此命令用于在文件中搜索包含 '搜索字符串' 的行

-a 把二进制文件以文本文件的形式搜索

-c 统计搜索到的行数

-i   不计大小写,也就是说搜索时 认为a与A是相同的

-n 输出行号

-v   反向搜索 就是搜索不包含 '搜索字符串' 的行

正则表达式语法

[] 任意取一    如 grep -n 'abc[de]g' file.txt 这个命令是说 在file.txt文件中搜索包含 abcdg 或abceg的行

[^]取反        如 grep -n 'abc[^b]g file.txt 指 在file.txt文件中搜索 'abc(此处不能是b)g ' 的行

^ 行首      grep -n '^abc' file.txt 行首必须是abc的行

$ 行尾     grep -n '$abc' file.txt 行尾必须是abc的行

.   任意一个字符 grep -n 'abc.d' file.txt 指匹配abc(此处为任意一个字符)d 如abckd,abc9d都正确,但是如果abc 和 d中间的字符大于一个则不匹配

* 重复字符,重复一次或无数次   grep -n 'abc*' file.txt   指 匹配字符串 abccc…… 也就是前面两位是ab后面可以有无数个c 也可以没有c

{} 重复次数限定符,由于这个符号在linux中有特殊的意义所有使用前要加\转意字符 grep -n 'ac\{2,5\}' file.txt 指匹配 acc accc acccc accccc 的字符串,也就说c字符必须出现最少2次最高5,否则就不匹配

- 范围限定符 grep -n 'ab[a-z]c' file.txt 指匹配 ab(这里必须是a到z这26个字母中的一个)c

下面为扩展正则表达式 必须通过命令 egrep可以使用

| 多次查寻 如egrep -n '^a|a$' text.file 此命令相当于执行一次grep -n '^a' text.file 再执行一次 grep -n 'a$' text.file

+ 重复一次或多次,这个符号与*差不多,但+要求字符最少出现一次

? 重复0次或一次 这个要求字符可以不出现,但出现只能出现一次

() 组查找   如 egrep -n 'a(ab|dg)k' text.file 指匹配 字符串 aabk或adgk

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值