19,正则表达式

grep

-i  不区分大小写

-v  --invert-match 反选

-c  --count  匹配次数

-l  --files-with-matches  打印文件名

-L  --files-without-match  打印出不匹配的文件名

-n  --line-number  打印出匹配行的行号

-h  --no-filename  不打印文件名

 

元字符

^ $ . [ ]{}-?*+() |\

.  代表任意字符

^  匹配行首

$  匹配行尾

^&  匹配空行

[]  里边的字符,是要匹配的字符集,元字符在里边代表字面意义。但是^代表否,-代表范围。

但是 grep -h '[A-Z]' dirlist*.txt  代表A-Z的所有字符,  grep -h '[-AZ]' dirlist*.txt  代表-、A、Z三个字符。

[A-Z] 可能存在字典序/ascii序的问题,所以有一种替代的方案,不会存在这种问题。

[:alnum:]  大写字母+小写字母+数字

[:word:]    大写字母+小写字母+数字+下划线(_)

[:alpha:]   大写字母+小写字母

[:blank:]    空格和tab键

[:digit:]      数字[0-9]

[:lower:]    小写字母

[:space:]   [ \t\r\n\v\f]

[:upper:]    大写字母

[:xdigit:]     16进制,[0-9A-Fa-f]

用法:要放在[]内,

ls /usr/sbin/[[:upper:]]*

基础正则与扩展正则

基础的支持  ^ $ . [ ]*  ,除此之外都认为是字面值,扩展的还支持:( ) { } ?+|

egrep 或者 grep -E 支持扩展正则。

基础正则里边,(, ), {, and }前面加上反斜线\,也会视为元字符。

 

|  表示或逻辑

()  表示一个作用域

数量词

?匹配一个字符0或1次

*  匹配一个字符0或多次

+  匹配一个字符1或多次

{ } 匹配一个字符指定次

{n}  匹配指定n次

{n,m}  匹配[n,m]次

{n,}     匹配>=n次

{,m}    匹配<=m次

 

vim的查找支持正则,只不过只支持基本正则,扩展的元字符前需要加反斜线,例如:

/([0-9]\{3\}) [0-9]\{3\}-[0-9]\{4\}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值