在开发脚本的时候,我们总会发现需要调用的某些字符串时有规律的。通过筛选、提取和调用这些有规律的字符串,完善脚本的处理流程。正则就是这么一串有规律的字符串。在各种编程语言中都有正则,原理基本一致。在linux学习中,掌握好正则对于编写shell脚本能打下深厚根基。
grep/egrep是shell脚本中常用的筛选命令之一。通过该命令配合正则表达式能够有效快速的筛选出需要的文本内容。
�grep命令的基本用法:grep [-cinvrABC] 'word' filename
参 数 | 作 用 |
-c | 统计匹配的行数 |
-i | 不区分大小写 |
-n | 显示行号 |
-v | 取反 |
-r | 遍历所有子目录 |
-A | 后面跟数字,过滤出符合要求的行以及下面的n行 |
-B | 后面跟数字,过滤出符合要求的行以及上面的n行 |
-C | 后面跟数字,过滤出符合要求的行以及上下各n行 |
测试示例:
[root@server01test1]#grep-csbin1.txt 11 [root@server01test1]#grep-iroot1.txt root:x:0:0:root:/Root:/bin/bash operator:x:11:0:operator:/Root:/sbin/nologin [root@server01test1]#grep-niroot1.txt 1:root:x:0:0:root:/Root:/bin/bash 10:operator:x:11:0:operator:/Root:/sbin/nologin [root@server01test1]#grep-nivroot1.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@server01test1]#grep-niA2root1.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@server01test1]#grep-niB2root1.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@server01test1]#grep-niC2root1.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脚本中比较常见,需要经常练习,熟能生巧。