grep/egrep

简介:

   在开发脚本的时候,我们总会发现需要调用的某些字符串时有规律的。通过筛选、提取和调用这些有规律的字符串,完善脚本的处理流程。正则就是这么一串有规律的字符串。在各种编程语言中都有正则,原理基本一致。在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命令的高级用法:配合正则

wKiom1laYHqh6TS5AABxtlkUJsQ879.png


以上用法在shell脚本中比较常见,需要经常练习,熟能生巧。










本文转自Grodd51CTO博客,原文链接:http://blog.51cto.com/juispan/1944215,如需转载请自行联系原作者


相关文章
|
Unix Linux Perl
我们一起来学grep
我们一起来学grep
82 0
|
Unix Perl
三剑客之 grep
三剑客之 grep
|
Web App开发 应用服务中间件 PHP
|
Shell Linux