linux正则表达式学习

1.通配符也叫文件名替换,它主要是作用于匹配文件名,常用命令是ls、find、cp、mv;


* 匹配0或者多个字符; {a,b,c}当用逗号分隔时,查找效果和[abc]是一样的

2.正则表达式主要是作用于匹配文件中的字符串,常用命令命令是grep、awk、sed


"{}"是扩展正则,所以grep不能直接使用,需要加-E或者使用egrep

. 句点(.)匹配任何单个字符? 前面的项目是可选的,且最多匹配一次* 前面的项目将匹配零次或多次+ 前面的项目将匹配一次或多次{n} 前面的项目恰好匹配n次{n,} 前面的项目恰好匹配n次或更多次{,m} 前面的项目最多匹配m次。{n,m} 前面的项目至少匹配n次,但不超过m次。[:almum:] 字母数字字符,等同于[0-9A-Za-z][:alpha:] 字母字符,等同于[A-Za-z][:blank:] 空白字符:空格和制表符[:cntrl:] 控制字符[:digit:] 数字:0-9[:graph:] 图形字符[:lower:] 小写字母[:print:] 可打印字符:[:almum:]、[:punct:]和空格[:punct:] 标点符号[:space:] 空格字符;制表符、换行符、垂直制表符、换页符、回车符和空格[:upper:] 大写字母[:xdigit:] 十六进制数字\b 匹配词语两侧的空字符串\B 匹配词语中间的空字符串< 匹配词语开头的空字符串> 匹配词语末尾的空字符串\w 匹配词语组分\W 匹配非词语组分\s 匹配空格\S 匹配非空格

https://blog.csdn.net/weixin_43770382/article/details/119214331

通配符中,{}可以用来表示连续的字符,但是在正则表达式中,是表示前面字符出现的次数

3.多选结构与其他正则表达式的组合

匹配文件列表中以bz、gz或zip开头的文件名

grep -Eh '^(bz|gz|zip)' dirlist*.txt

上例中去除括号,匹配以bz开头、或者包含gz,或者包含zip的文件名

grep -Eh '^bz|gz|zip' dirlist*.txt

常用grep选项表

grep还有很多其他选项,使用man page可以对它们进行研究

4. Less和Vim中使用正则表达式搜索文本

#执行less命令后,先输入斜杠,然后输入正则表达式进行匹配

/^\([0-9]{3}\) [0-9]{3}-[0-9]{4}$

Vim只支持BRE,因此上述的正则表达式得改写成这样

/([0-9]\{3\}) [0-9]\{3\}-[0-9]\{4\}$

你可能感兴趣的:(linux正则表达式学习)