码迷,mamicode.com
首页 > 其他好文 > 详细

9.1 正则介绍_grep上 9.2 grep中 9.3 grep下

时间:2018-01-13 23:54:38      阅读:375      评论:0      收藏:0      [点我收藏+]

标签:格式   div   operator   inf   src   use   /etc   正则表达   pen   

技术分享图片

对“正则表达式”的定义是:它使用单个字符串来描述或匹配一系列符合某个句法规则的字符串。

grep/egrep

该命令的格式:grep [-cinvABC] ‘word‘ filename,其常用的选项如下所示。

-c:表示打印符合要求的行数。

-i:表示忽略大小写。

-n:表示输出符合要求的行及其行号。

-v:表示打印不符合要求的行。

-A:后面跟一个数字(有无空格都可以),例如-A2表示打印符合要求的行以及下面2行

-B:后面跟一个数字,-B2表示打印符合要求的行以及上面2行。

-C:后面跟一个数字,-C2表示打印符合要求的行以及上下各2行。

-r:遍历所有子目录。

 1 [root@lizhipeng01 ~]# mkdir grep
 2 [root@lizhipeng01 ~]# cd grep/
 3 [root@lizhipeng01 grep]# cp /etc/passwd .
 4 [root@lizhipeng01 grep]# ls
 5 passwd
 6 [root@lizhipeng01 grep]# pwd
 7 /root/grep
 8 [root@lizhipeng01 grep]# ls
 9 passwd
10 [root@lizhipeng01 grep]#  grep ‘nologin‘ passwd
11 bin:x:1:1:bin:/bin:/sbin/nologin
12 daemon:x:2:2:daemon:/sbin:/sbin/nologin
13 adm:x:3:4:adm:/var/adm:/sbin/nologin
14 lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
15 mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
16 operator:x:11:0:operator:/root:/sbin/nologin
17 games:x:12:100:games:/usr/games:/sbin/nologin
18 ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
19 nobody:x:99:99:Nobody:/:/sbin/nologin
20 avahi-autoipd:x:170:170:Avahi IPv4LL Stack:/var/lib/avahi-autoipd:/sbin/nologin
21 dbus:x:81:81:System message bus:/:/sbin/nologin
22 polkitd:x:999:998:User for polkitd:/:/sbin/nologin
23 tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
24 postfix:x:89:89::/var/spool/postfix:/sbin/nologin
25 sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
26 user4:x:1006:1005::/home/lizhipeng001:/sbin/nologin

[root@lizhipeng01 grep]# grep -c ‘nologin‘ passwd    显示多少行带有nologin
16
[root@lizhipeng01 grep]# grep -n ‘nologin‘ passwd    显示行号,该行带有nologin
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
9:mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
10:operator:x:11:0:operator:/root:/sbin/nologin
11:games:x:12:100:games:/usr/games:/sbin/nologin
12:ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
13:nobody:x:99:99:Nobody:/:/sbin/nologin
14:avahi-autoipd:x:170:170:Avahi IPv4LL Stack:/var/lib/avahi-autoipd:/sbin/nologin
15:dbus:x:81:81:System message bus:/:/sbin/nologin
16:polkitd:x:999:998:User for polkitd:/:/sbin/nologin
17:tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
18:postfix:x:89:89::/var/spool/postfix:/sbin/nologin
19:sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
25:user4:x:1006:1005::/home/lizhipeng001:/sbin/nologin

[root@lizhipeng01 grep]# grep -vni ‘nologin‘ passwd  v取反,显示不带有nologin的行
1:root:x:0:0:root:/root:/bin/bash
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
20:lizhipeng:x:1000:1000::/home/lizhipeng:/bin/bash
21:user1:x:1001:1001::/home/user1:/bin/bash
22:lzp:x:1002:1003::/home/lzp:/bin/bash
23:user2:x:1003:1006::/home/user2:/bin/bash
24:user3:x:1004:1005::/home/user3:/bin/bash
26:user5:x:1007:1007::/home/user5:/bin/bash

[root@lizhipeng01 grep]# grep -r ‘root‘ /etc/ > /tmp/grep.log
[root@lizhipeng01 grep]# grep passwd /tmp/grep.log
/etc/passwd:root:x:0:0:root:/root:/bin/bash
/etc/passwd:operator:x:11:0:operator:/root:/sbin/nologin
/etc/passwd-:root:x:0:0:root:/root:/bin/bash
/etc/passwd-:operator:x:11:0:operator:/root:/sbin/nologin
/etc/postfix/main.cf:# the system passwd file in the chroot jail is just not practical.

[root@lizhipeng01 grep]# grep -nA2 ‘root‘ passwd  -nA2,n显示行号,A2,含有root的行以及下面2行
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-games:x:12:100:games:/usr/games:/sbin/nologin
12-ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin

[root@lizhipeng01 grep]# grep -nB2 ‘root‘ passwd    -B含有‘root‘的行,以及上面2行
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@lizhipeng01 grep]# grep -nC2 ‘root‘ passwd    -C含有‘root‘的行,以及上下各2行
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-games:x:12:100:games:/usr/games:/sbin/nologin
12-ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin

技术分享图片

 
[root@lizhipeng01 grep]# grep ‘[0-9]‘ passwd  过滤出含有数字的行

[root@lizhipeng01 grep]# grep -v ‘[0-9]‘ passwd  带数字的都不要

[root@lizhipeng01 grep]# grep -n ‘^#‘ passwd  过滤出以#开头的行

[root@lizhipeng01 grep]# grep -nv ‘^#‘ passwd 过滤不是以#开头的行

[root@lizhipeng01 grep]# cp /etc/inittab .
[root@lizhipeng01 grep]# ls
inittab passwd
[root@lizhipeng01 grep]# vim inittab
[root@lizhipeng01 grep]# grep -v ‘^#‘ inittab    过滤不是以#开头的行
adadad
jij
11111

技术分享图片技术分享图片

技术分享图片

[root@lizhipeng01 grep]# grep ‘r.o‘ passwd             .表示任意一个字符
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin     

[root@lizhipeng01 grep]# grep ‘o*o‘ passwd            *表示零个或多个*前面的字符

[root@lizhipeng01 grep]# grep ‘o\{2\}‘ passwd   {2},表示前面的字符要重复的次数
root:x:0:0:root:/root:/bin/bash
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin

[root@lizhipeng01 grep]# grep -E ‘o{2}‘ passwd    -E,就可以去掉脱意\
root:x:0:0:root:/root:/bin/bash
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin

[root@lizhipeng01 grep]# egrep ‘o+o‘ passwd          +表示匹配1个或者多个+前面的字符,这个+是不支持被grep直接使用的。
root:x:0:0:root:/root:/bin/bash
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin

[root@lizhipeng01 grep]# egrep ‘o?‘ passwd            ?表示匹配0个或1个前面的字符

[root@lizhipeng01 grep]# egrep ‘aa|oo|11‘ passwd     表示匹配要么匹配字符串aa,要么oo,要么11
root:x:0:0:root:/root:/bin/bash
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin

[root@lizhipeng01 grep]# egrep ‘r(oo|at)o‘ passwd
operator:x:11:0:operator:/root:/sbin/nologin

9.1 正则介绍_grep上 9.2 grep中 9.3 grep下

标签:格式   div   operator   inf   src   use   /etc   正则表达   pen   

原文地址:https://www.cnblogs.com/sisul/p/8280756.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!