grep正则方法示范

grep 正则过滤

正则是一组有规律的字符串
grep过滤字符并加以颜色显示

[[email protected] src]# grep ‘nologin‘ passwd    
             过滤出nologin字符

grep正则方法示范

过滤出nologin字符并显示行号

[[email protected] src]# grep -n ‘nologin‘ passwd 
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

grep -i 过滤出字符不区分大小写,第四行为大写的字符

[[email protected] src]# grep -ni ‘nologin‘ passwd 
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

grep -v 过滤指定的取反字符,把nologin以外的显示出来

[[email protected] src]# grep -v ‘nologin‘ passwd 
root:x:0:0:root:/root:/bin/bash
lp:x:4:7:lp:/var/spool/lpd:/sbin/NOLogin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt

grep -r ‘root‘ 遍历过滤包含root字符的文件,使用-r选项可以过滤多个文件中的关键字符,例如用来查看不同日期产生的输出日志关键信息

grep正则方法示范


grep -A 行数 遍历出指定字符行下的几行,如下列的ftp字符行下面的三行

[[email protected] src]# grep -A3 ‘ftp‘ passwd 
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-bus-proxy:x:999:997:systemd Bus Proxy:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin

grep -B 行数 遍历出指定字符行上的几行,如下面的ftp字符行上的三行

[[email protected] src]# grep -B3 ‘ftp‘ passwd 
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin

grep -C 行数 遍历出指定字符行上下的几行,如下的ftp字符行上下的各三行

[[email protected] src]# grep -C3 ‘ftp‘ passwd 
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-bus-proxy:x:999:997:systemd Bus Proxy:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin

grep正则匹配
首先看下操作的文件内容,文件内容包含多个空行和一个注释行,匹配文件中有注释、空行、数字混合行

grep正则方法示范

grep ‘[0-9]‘ 过滤匹配带有数字的行

[[email protected] src]# grep ‘[0-9]‘ 1.txt

grep正则方法示范

截图显示带颜色的内容

grep -v ‘[0-9]‘ 取出不带数字的行

[[email protected] src]# grep -v ‘[0-9]‘ 1.txt

grep正则方法示范


grep -v ‘^$‘ 和 ‘^#‘ 去除一个文件中空行和注释行,^表示以某字符开头,$表示以某字符结尾。^$一起使用代表匹配空行

[[email protected] src]# grep "^#" 1.txt 
#jfhdot4u89<F3>hiuy76flker
[[email protected] src]# grep -v  ‘^#‘ 1.txt |grep -v ‘^$‘
1234576543235467653
xccvjhgjdf235346423dsfd23ase3
asf42345rrf34rf4rfcer
r4t3eqw34t5w4f4354
3435232454fd
f344fss44e4444
r4t5yty5
DDDDGGDSAGDFhjfjdgfdghgf<F2><F4><F
35greUGFG&&y8t6rR%Tf*(Y8Joh
"LF"D
KL#RJ([email protected]
KFhu3u5485<F3><F4>u‘;":}
:F
dfjhotioreh4j<F3><F8>K?"
:KF
:KJH

grep ‘[^a-z]‘ 使用中括号取反a-z的值,截图示例如下

[[email protected] src]# grep ‘[^a-z]‘ 1.txt

grep正则方法示范

截图中可以清楚的看到除了a-z以外的所有字符都会被标记上颜色,如果中括号外再加上^开头符号。则只会显示非a-z开头的字符内容,如下

[[email protected] src]# grep ‘^[^a-z]‘ 1.txt

grep正则方法示范


grep匹配任意一个字符,匹配结果中会包含任意一个字符

[[email protected] src]# grep ‘a.c‘ 1.txt

grep正则方法示范

grep ‘.*‘ 匹配任意个任意字符。指定字符时则是这个字符后面的任意的全部字符

[[email protected] src]# grep ‘h.*‘ 1.txt

grep正则方法示范


egrep匹配字符出现的第几次

[[email protected] src]# egrep ‘h{2}‘ 1.txt

grep正则方法示范


egrep ‘h+s‘ 匹配符合某两个符号的字段,无论这个两个相邻字符出现的次数

[[email protected] src]# egrep ‘h+s‘ 1.txt

grep正则方法示范


egrep 匹配包含某些字符的行,不管匹配到的字符前面或结尾是否存在其他不相关的字符,又例如ifconfig列出网卡信息

[[email protected] src]# egrep ‘hd+‘ 1.txt

grep正则方法示范

grep正则方法示范

[[email protected] src]# ifconfig |egrep ‘inet *.+ netmask‘

grep正则方法示范

egrep匹配多个字符(字符或另一个字符)

[[email protected] src]# egrep -i ‘root|ftp‘ /etc/passwd

grep正则方法示范

egrep匹配指定字符出现次数,及匹配字符出现多次

[[email protected] src]# egrep ‘(oo)‘ passwd

grep正则方法示范

对出现两次的字符进行匹配

[[email protected] src]# egrep ‘(oo){2}‘ passwd

grep正则方法示范

相关文章

jquery.validate使用攻略(表单校验) 目录 jquery.validate...
/\s+/g和/\s/g的区别 正则表达式/\s+/g...
自整理几个jquery.Validate验证正则: 1. 只能输入数字和字母...
this.optional(element)的用法 this.optional(element)是jqu...
jQuery.validate 表单动态验证 实际上jQuery.validate提供了...
自定义验证之这能输入数字(包括小数 负数 ) &lt;script ...