Linux初学学习笔记 -----正则表达式和通配符
简单来说通配符是用来匹配文件名和目录而正则表达式是用来匹配文本内容的
常用的通配符
*:匹配任意多个字符
下面的是以p为开头的目录里面的文件
?:匹配任意一个字符
[…]:匹配括号内出现的任意一个字符
[!...]:不匹配中括号内出现的任意一个字符
正则表达式
字符匹配
. :匹配任意单个字符
*:匹配其前面一个字符出现任意次
?:匹配其前面的字符1次或0次
+:匹配其前面一个字符出现至少一次(在扩展正则表达式中)
位置匹配
^:锚定行首
$:锚定行尾
\<或\b:锚定词首,其后面的任意字符必须作为单词首部出现
\>或\b:锚定词尾,其前面的任意字符必须作为单词尾部出现
\B:非单词的开头或结尾
^$:空白行
\:通常用于打开或关闭后续字符的特殊含义
分组()
(ab)*:匹配ab这个分组出现任意次
\1:引用第一个左括号以及与之对应的右括号所包括的所有内容,同理还有\2,\3\
特殊子字符类:
[:alnum:]:任何字母和数字
[:alpha:]:任何字母
[:cntrl:]:控制字符,在ASCLL表中对应八进制000到037,和177
[:digit:]:任何数字
[:graph:]:匹配打印字符,相当于‘[:alnum:]’+’[:punct:]’
[:lower:]:小写字母
[:print:]:可打印字符相当于‘[:alnum:]’+’[:punct:]’,和space
[:punct:]标点符号
[:space:]空白字符
[:upper:]大写字母
[:xdigit:]任何16进制的数字