释放双眼,带上耳机,听听看~!
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