加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

grep正则方法示范

发布时间:2020-12-14 06:17:42 所属栏目:百科 来源:网络整理
导读:grep 正则过滤 正则是一组有规律的字符串 grep过滤字符并加以颜色显示 [[email?protected] src]# grep ‘nologin‘ passwd 过滤出nologin字符 过滤出nologin字符并显示行号 [[email?protected] src]# grep -n ‘nologin‘ passwd 2:bin:x:1:1:bin:/bin:/sbin
grep 正则过滤

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

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

过滤出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 -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 ‘[0-9]‘ 过滤匹配带有数字的行

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

截图显示带颜色的内容

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

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


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

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

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


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

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

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

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


egrep匹配字符出现的第几次

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


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

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


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

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

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

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

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

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

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

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读