标签:空行 grep game nbsp 实现 bin -- cin 命令
正则:一串有规律的字符串
grep可以实现的,egrep都可以实现。
grep [-cinvrABC] ‘word‘ filename【自带color选项】
#无任何选项 [root@chy002 tmp]# grep ‘root‘ passwd.txt root:x:0:0:root:/root:/bin/bash operator:x:11:0:operator:/root:/sbin/nologin
-c 行数
[root@chy002 tmp]# grep -c ‘root‘ passwd.txt 2
-i 不区分大小写
[root@chy002 tmp]# grep -i ‘root‘ passwd.txt ROOt ROOT root:x:0:0:root:/root:/bin/bash operator:x:11:0:operator:/root:/sbin/nologin
-n 显示行号
[root@chy002 tmp]# grep -in ‘root‘ passwd.txt 1:ROOt 2:ROOT 3:root:x:0:0:root:/root:/bin/bash 12:operator:x:11:0:operator:/root:/sbin/nologin
-v 取反
#不带nologin行过滤 [root@chy002 tmp]# grep -vni ‘nologin‘ passwd.txt 1:ROOt 2:ROOT 3:root:x:0:0:root:/root:/bin/bash 8:sync:x:5:0:sync:/sbin:/bin/sync 9:shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown 10:halt:x:7:0:halt:/sbin:/sbin/halt 22:chy002:x:1000:1000::/home/chy002:/bin/bash 23:user:x:1001:1001::/home/user:/bin/bash 24:user1:x:1002:1006::/home/user1:/bin/bash 25:user2:x:1004:1002::/home/user2:/bin/bash 26:user3:x:1005:1002::/tmp/user3:/bin/bash 27:user4:x:1009:1006::/home/user5:/bin/bash
-r 遍历所有子目录
[root@chy002 tmp]# grep -in ‘root‘ /tmp/ grep: /tmp/: 是一个目录 [root@chy002 tmp]# grep -rin ‘root‘ /tmp/ /tmp/123.txt:1:root:x:0:0:root:/root:/bin/bash /tmp/123.txt:10:operator:x:11:0:operator:/root:/sbin/nologin /tmp/321.txt:1:root:x:0:0:root:/root:/bin/bash /tmp/321.txt:10:operator:x:11:0:operator:/root:/sbin/nologin /tmp/passwd.txt:1:ROOt /tmp/passwd.txt:2:ROOT /tmp/passwd.txt:3:root:x:0:0:root:/root:/bin/bash /tmp/passwd.txt:12:operator:x:11:0:operator:/root:/sbin/nologin ... ...
-A 后面跟数字过滤出符合要求的行以及下面n行
[root@chy002 tmp]# grep -nA2 ‘root‘ passwd.txt 3:root:x:0:0:root:/root:/bin/bash 4-bin:x:1:1:bin:/bin:/sbin/nologin 5-daemon:x:2:2:daemon:/sbin:/sbin/nologin -- 12:operator:x:11:0:operator:/root:/sbin/nologin 13-games:x:12:100:games:/usr/games:/sbin/nologin 14-ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
-B 过滤出符合要求的行及上面的n行
-C 同时过滤出符合要求的行及上下各n行
[0-9a-zA-Z]
[root@chy002 tmp]# grep -nv ‘[0-9]‘ passwd.txt 1:ROOt 2:ROOT
[^] 非的意思
#匹配非小写字母开头的行 [root@chy002 tmp]# grep -n ‘^[^a-z]‘ passwd.txt 1:ROOt 2:ROOT
[^$] 空行
#去除文本中的空行 [root@chy002 tmp]# grep -nv ‘^$‘ 1.txt 1:sadf 2:123 4:qwe123 6:Q2
o*o 表示*号左边的字符重复0-n次,一定匹配右边一个字符o
[root@chy002 tmp]# grep -n ‘r*o‘ passwd.txt 2:roooooo 3:ro 8:root:x:0:0:root:/root:/bin/bash 9:bin:x:1:1:bin:/bin:/sbin/nologin 10:daemon:x:2:2:daemon:/sbin:/sbin/nologin ... ...
r.o r和o中间任意一个字符,必须有一个
[root@chy002 tmp]# grep -n ‘r.o‘ passwd.txt 2:roooooo 8:root:x:0:0:root:/root:/bin/bash 17:operator:x:11:0:operator:/root:/sbin/nologin
.* 匹配全部,包含所有字符及空行
{ } 花括号,使用egrep或者 -E 可以不使用脱义符号
[root@chy002 tmp]# grep ‘o{2}‘ passwd.txt o{2} [root@chy002 tmp]# grep ‘o\{2\}‘ passwd.txt roooooo 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
o+b b前面1次或者多次o,必须b紧挨着o,加号还是需要脱义,可以使用egrep 或 -E
[root@chy002 tmp]# grep ‘o\+t‘ passwd.txt root:x:0:0:root:/root:/bin/bash operator:x:11:0:operator:/root:/sbin/nologin
o?b b前面o重复次数0或者1,必须t紧挨着o
[root@chyuanliu-01 tmp]# grep ‘o\?b‘ 123.txt robt ro123bt roobt roobbt robobt rbt orbt
| 或者符号
[root@chyuanliu-01 tmp]# grep ‘root\|nologin‘ passwd.txt 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
sed关键在于替换,与grep匹配最主要的区别在于能对匹配的字符进行删除更改等操作,无color选项。
标签:空行 grep game nbsp 实现 bin -- cin 命令
原文地址:http://www.cnblogs.com/chyuanliu/p/7857849.html