1.通配符
字符 | 说明 |
---|---|
[…] | 匹配范围内任意一个字符 [az][a-z] |
[^…] | 匹配范围外任意一一个字符,表示取反 [^az] |
{} | 组合匹配{a,b,c}{1…20} 常用来建立文件夹或者文件 |
[] | [0-9]代表0-9的任意一个数字 |
1.1关于{}和[]的区分
{}没有特定使用场合,常用来建立序列目录和文件
[root@localhost work]# touch file{1..5}
新建file1、file2到file5的文件
[root@localhost work]# ls
file1 file2 file3 file4 file5
[root@localhost work]# mkdir file{a,b,c}
新建filea、fileb、filec文件
[root@localhost work]# ls
filea fileb filec
[]只能用来匹配文件名,若用来新建文件会出现错误
[root@localhost work]# touch file[d,e,f]
[root@localhost work]# ls
'file[d,e,f]'
匹配文件,查找文件
[root@localhost work]# ls
file1 file2 file3 file4 file5
[root@localhost work]# ls file[1-3]
file1 file2 file3
2.通配符
字符 | 说明 |
---|---|
? | 表示0个或者1个 |
* | 表示0次或者多次 |
[] | 表示匹配任意一个 |
{n} | 表示n次 |
{n,} | 表示n次以及以上 |
{n,m} | 表示n次到m次 |
3.单词的界定
常与正则表达式一同使用
\<xxx\>
\bxxx\b
\s 表示空白
\n 表示换行
3.1实例
文本内容为
[root@localhost lianxi]# cat test.txt
jerry jack mack
jerry jack mark
tom anna jack 12345
12345
lisa xiaoming xiaozhang
lisi wangwu bob
laosi Jerry TOM
查找jack单词
[root@localhost lianxi]# cat test.txt | egrep "\bjack\b"
jerry jack mack
jerry jack mark
tom anna jack 12345
查找以k结尾的单词
[root@localhost lianxi]# cat test.txt | egrep "k\b"
jerry jack mack
jerry jack mark
tom anna jack 12345
4.正则表达式
字符 | 说明 |
---|---|
. | 代表任意单个字符 |
.* | 代表任意字符串 |
^ | 以…的开头 |
$ | 以…的结尾 |
^$ | 空行 |
^# | 注释行 |
扩展 | grep使用需要加上-E |
? | 表示0或者1个 |
() | 表示一个字符集合 |
+ | 表示一个或者多个 |
| | 表示“或意思” |
若想将上述字符作为普通字符使用,需要在前面加上\字符
4.1区分取反与以…开头
以什么开头 ^[…]
cat /etc/passwd | grep “^[rl]”
匹配以r或者l开头的
取反 [^…]
[root@localhost lianxi]# cat /etc/passwd | grep “[^0-9]”
除了0到9的数字都会匹配到
5.grep
grep [选项] 搜索内容 文件名
选项 | 说明 |
---|---|
-a | 以文本文件方式搜索 |
-c | 计算找到的符合行的次数 |
-i | 忽略大小写 |
-n | 顺便输出行号 |
-r | 递归查找 |
-o | 只显示匹配的内容 |
-v | 反转查找,即找到与查找内容不符合的行 整行取反 |
-A | 显示符合条件行的下面A行 (包括查找行) |
-B | 显示符合条件行的上面B行 (包括查找行) |
-C | 显示符合调条件上面和下面C行 (包括查找行) |
-E | 支持扩展正则表达式 |
-f | 根据文件内容进行匹配 |
5.1实例
test文本内容如下:
[root@localhost lianxi]# cat test.txt
jerry jack mack
jerry jack mark
tom anna jack 12345
12345
lisa xiaoming xiaozhang
lisi wangwu bob
laosi Jerry TOM
颗粒度不同 (整行取反与括号内取反)