正则表达式:
1正则表达式字符
通配符 | 作用 |
---|
? | 匹配0或多个字符 |
* | 匹配任意一个字符 |
[list] | 匹配list中任意单一个字符 |
[^list]或[!list] | 匹配除了list中任意单一个字符 |
[c1-c2] | 匹配c1-c2中的任意字符,如【0-9】或【a-z】 |
[!c1-c2]或 [^c1-c2 | 匹配不在c1-c2中的任意字符 |
{string1,string2,…} | 匹配string1或string2(或更多其中一字符串) |
代码
1.用正则表达式批量创建空文件
touch a{1,3}.txt //只能创建a1.txt和a3.txt文件
touch a{1..3}.txt //创建是a1.txt,a2.txt,a3.txt
[myvm168@localhost touch]$ touch a{1,5}.txt
[myvm168@localhost touch]$ ls
a1.txt a5.txt
[myvm168@localhost touch]$ touch a{5..8}.txt
[myvm168@localhost touch]$ ls
a1.txt a5.txt a6.txt a7.txt a8.txt
2.列举所有创建的文件
ls a*
[myvm168@localhost touch]$ ls a*
a1.txt a5.txt a6.txt a7.txt a8.txt
[myvm168@localhost touch]$ ls a[5-9].txt
a5.txt a6.txt a7.txt a8.txt
[myvm168@localhost touch]$ ls a[1,2].txt
a1.txt
3.删除
rm -rf a?.txt
[myvm168@localhost touch]$ rm -rf a?.txt
4.再次列举
ls a*
[myvm168@localhost touch]$ ls
字符 | 作用 |
---|
正则表达式的模式匹配字符 | |
. | 点号,匹配单个任意字符 |
[15] | 匹配字符串中的1或5 |
[0-9a-zA-Z] | 匹配字符串中的数字及大小字母 |
[^字符] | 匹配除了[]中的所有字符 |
与模式匹配字符配合使用的量词 | |
* | 匹配零个或多个前面的字符 |
.* | 表示零个或多个任意字符 ,空行也包含在内 |
{n} | 表示重复n次前面的字符 |
{n,} | 表示至少n次前面的字符 |
{n1,n2} | 表示重复n1到n2次前面的字符 |
控制字符 | |
^ | 表示行的开始 |
$ | 表示行的结束 |
^$ | 表示空行 |
\ | 引用特殊字符 |
hello //匹配包含hello的行
\*h$ //匹配倒数第一个是h,第二是*的行
^[a-z]\{2\}[^a-zA-Z] //匹配以2个小写字母开关跟着一个非字母符的行
^\([0-9a-z][A-Z]\)*$ //匹配前面组合零次或多次的行
基础正则
基础正则 | 含义 | 搭配 |
---|
^ | 以。。。开始 | |
$ | 以。。。结束 | |
^$ | 空行 | 搭配^$ |
. | 任意一个字符,排除空行 | |
* | 前面一个字符连续出现0次或0次以上 | |
.* | 所有内容 | |
\ | 转义字符 如\n \t | |
[] | 一个整体,匹配任意一个字符 | []与+搭配 |
[^] | 取反排除[^abc] | |
正则贪婪性 | 认识特点就行 | |
扩展正则
总结
符号 | 含义 | 搭配 |
---|
* | 前一个字符连续出现1次或1次以上 | []+ |
| | 或者 | |
() | 一个整体,sed反向引用 | |
{} | o{n,m} 前一个字母至少出现n次,最多出现m次 | |
? | 连续出现前一个字符出现0次或1次 | |
**基础正则:grep ,egrep ,sed ,wak 可以任意使用** **扩展正则:egrep ,sed要使用扩展正则需要加入一个参数‘-r’**,**awk 可以任意使用**