grep与正则表达式

释放双眼,带上耳机,听听看~!

grep 强大的文本搜索过滤工具,从文件中搜索特定字符显示打印至终端窗口,另外还支持正则表达式与扩展正则表达式


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
1例子 grep 'nologin' /dev/passwd -m5  
2-m 指定匹配次数,匹配N此后停止  
3-i 不区分大小写 输入内容的大小写皆匹配出    
4-n 显示匹配到行的行号  
5-v 取反 输入字符外其他字符皆匹配  
6-c 统计匹配到总行数  
7-o 仅显示匹配的字符,不会整行显示  
8-q 静默模式 匹配到的字符不会输出至终端窗口  
9-A1 连带显示匹配行后的1行  
10-B2 连带显示匹配行前的2行  
11-C3 连带显示匹配行前后各三行  
12-e 可跟多个关键字匹配  
13-w 仅匹配关键字为单个单词 (数字、字母、下划线组成)  
14-f 关键子从文件中匹配  
15-E 使用扩展正则表达式 等同于 egrep
16

1
2
1   正则表达式
2

正则表达式,可以用特定符号代替某一类字符来进行匹配,可以指定匹配的位置、次数 、以及分组替用  字符匹配:


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
1列子 grep '[[:alnum:]]' /etc/passwd
2 .       匹配任意单个字符  
3 [ ]     匹配中括号内任意单个字符        
4 [^]        取反  如[^A] 匹配A以外所有字符      
5 [:alnum:]  任意字母和数字
6 [:lower:]  任意小写字母  
7 [:upper:]  任意大写字母
8 [:alpha:]  任意大小写字母 等同于[a-zA-Z]      
9 [:blank:]  空白字符  
10 [:space:]  空白字符 水平空白符和垂直空白符  
11 [:cnatl:]  不可打印控制字符(退格、删除、警铃)  
12 [:dinht:]  十进制数字  
13 [:xdigit:]  十六进制数字  
14 [:graph:] 可打印的非空白字符  
15 [:print:] 可打印的字符  
16 [:punct:] 标点符号  
17

次数匹配:


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
1例子:grep '[[:alnum:]]*' /etc/passwd  
2 *       匹配*号前字符任意次,包括零次  
3 .*      匹配任意字符、任意长度  
4 \?      匹配零次或一次  
5 \{3\}   匹配3次  
6 \{1,3\} 匹配前面字符出现最少1次,最多3次  
7 \{,3\}  匹配最多3次  
8 \{1,\}  匹配最少1次    
9 另有扩展正则表达式,用法基本与正则表达式一致,扩展正则表达式中的次数匹配中\可直接省略不写
10   位置锚定:  
11
12例子:grep  '^[[:alnum:]]' /etc/passwd
13 ^  行首锚定 一行的最坐侧  
14 $  行尾锚定 一行的最右侧  
15 ^$ 匹配空行   或^[[:space:]]*$  空行    
16 \< 词首锚定  或\b  用在指定字符前  
17 \> 词尾锚定  或\b  用在指定字符后  
18

分组:


1
2
3
4
5
6
7
8
1\(\)   将一个或多个字符捆绑在一起,作为一个分组,一个整体  
2例子 \(ace\)  ace为一个整体 第一个分组可用\1直接代替,代表ace
3分组可多层套用 : \(string1\(string2\)\)
4\1 : string1\(string2\)    
5\2 : string2
6
7\|  或  如1\|2 , 匹配1或2  
8

给TA打赏
共{{data.count}}人
人已打赏
安全经验

人们为何痛恨Google Adsense

2021-10-11 16:36:11

安全经验

安全咨询服务

2022-1-12 14:11:49

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索