在开发脚本的时候,我们总会发现需要调用的某些字符串时有规律的。通过筛选、提取和调用这些有规律的字符串,完善脚本的处理流程。正则就是这么一串有规律的字符串。在各种编程语言中都有正则,原理基本一致。在linux学习中,掌握好正则对于编写shell脚本能打下深厚根基。
grep/egrep是shell脚本中常用的筛选命令之一。通过该命令配合正则表达式能够有效快速的筛选出需要的文本内容。
▎grep命令的基本用法:grep [-cinvrABC] 'word' filename
参 数 | 作 用 |
-c | 统计匹配的行数 |
-i | 不区分大小写 |
-n | 显示行号 |
-v | 取反 |
-r | 遍历所有子目录 |
-A | 后面跟数字,过滤出符合要求的行以及下面的n行 |
-B | 后面跟数字,过滤出符合要求的行以及上面的n行 |
-C | 后面跟数字,过滤出符合要求的行以及上下各n行 |
测试示例:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
[root@server01 test1]
# grep -c sbin 1.txt
11
[root@server01 test1]
# grep -i root 1.txt
root:x:0:0:root:
/Root
:
/bin/bash
operator:x:11:0:operator:
/Root
:
/sbin/nologin
[root@server01 test1]
# grep -ni root 1.txt
1:root:x:0:0:root:
/Root
:
/bin/bash
10:operator:x:11:0:operator:
/Root
:
/sbin/nologin
[root@server01 test1]
# grep -niv root 1.txt
2:bin:x:1:1:bin:
/bin
:
/sbin/nologin
3:daemon:x:2:2:daemon:
/sbin
:
/sbin/nologin
4:adm:x:3:4:adm:
/var/adm
:
/sbin/nologin
5:lp:x:4:7:lp:
/var/spool/lpd
:
/sbin/nologin
6:
sync
:x:5:0:
sync
:
/sbin
:
/bin/sync
7:
shutdown
:x:6:0:
shutdown
:
/sbin
:
/sbin/shutdown
8:halt:x:7:0:halt:
/sbin
:
/sbin/halt
9:mail:x:8:12:mail:
/var/spool/mail
:
/sbin/nologin
11:operator:x:11:0:operoator:
/rt
:
/sbin/nologin
12:operator:x:11:0:operoooooator:
/rt
:
/sbin/nologin
[root@server01 test1]
# grep -niA2 root 1.txt
1:root:x:0:0:root:
/Root
:
/bin/bash
2-bin:x:1:1:bin:
/bin
:
/sbin/nologin
3-daemon:x:2:2:daemon:
/sbin
:
/sbin/nologin
--
10:operator:x:11:0:operator:
/Root
:
/sbin/nologin
11-operator:x:11:0:operoator:
/rt
:
/sbin/nologin
12-operator:x:11:0:operoooooator:
/rt
:
/sbin/nologin
[root@server01 test1]
# grep -niB2 root 1.txt
1:root:x:0:0:root:
/Root
:
/bin/bash
--
8-halt:x:7:0:halt:
/sbin
:
/sbin/halt
9-mail:x:8:12:mail:
/var/spool/mail
:
/sbin/nologin
10:operator:x:11:0:operator:
/Root
:
/sbin/nologin
[root@server01 test1]
# grep -niC2 root 1.txt
1:root:x:0:0:root:
/Root
:
/bin/bash
2-bin:x:1:1:bin:
/bin
:
/sbin/nologin
3-daemon:x:2:2:daemon:
/sbin
:
/sbin/nologin
--
8-halt:x:7:0:halt:
/sbin
:
/sbin/halt
9-mail:x:8:12:mail:
/var/spool/mail
:
/sbin/nologin
10:operator:x:11:0:operator:
/Root
:
/sbin/nologin
11-operator:x:11:0:operoator:
/rt
:
/sbin/nologin
12-operator:x:11:0:operoooooator:
/rt
:
/sbin/nologin
|
▎grep/egrep命令的高级用法:配合正则
以上用法在shell脚本中比较常见,需要经常练习,熟能生巧。
本文转自Grodd51CTO博客,原文链接:http://blog.51cto.com/juispan/1944215,如需转载请自行联系原作者