linux-grep 正则表达式学习

grep

grep -o 只显示搜索字符
grep -i :忽略大小写
grep -v 不显示搜索内容
grep -q 静态 不返回任何字符,(0 有搜索内容 1-255 没有搜索内容)

[root@bogon ~]# grep -q "UUID" /etc/fstab 
[root@bogon ~]# echo $?
0

grep -A n 搜索行后面的n行 (after)

[root@bogon ~]# grep -A 2 root /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/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/nolog

in

grep -B n 带搜索前的n行(before)

 [root@bogon ~]# grep -A 2 root /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/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
[root@bogon ~]# grep -B 2 root /etc/passwd
root:x:0:0:root:/root:/bin/bash
--
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin

grep -C n 前后各n行(context)

[root@bogon ~]# grep -C 2 root /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
--
halt:x:7:0:halt:/sbin:/sbin/halt
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

正则

基本正则表达式元字符:
字符匹配:
.:匹配任意单个字符
在这里插入图片描述
[]:匹配指定范围内的任意单个字符
[^]:匹配指定范围外的任意单个字符
匹配都是数字:[:digit:] 匹配都是小写字母:[:lower:] 匹配都是大写字母:[:upper:]
匹配包含数字:[:alnum:] 匹配标点符号[:punct:] 匹配空格 [:space:]

  匹配rt之间有两个字母

在这里插入图片描述
匹配次数:用于要制定其出现的次数的字符的后面,用于限制七前面字符出现的次数:
*:匹配其前面的字符任意次:
在这里插入图片描述
.*:匹配任意字符
在这里插入图片描述
\?: 匹配其前面的字符0次或一次;即其前面的字符是可有可无的(必须带引号)
在这里插入图片描述
\+:匹配前面的字符1次或多次
在这里插入图片描述
\{m\}:匹配前面的字符m次
在这里插入图片描述
\{m,n\}:匹配前面的字符m到n次
位置锚定:
^:行首锚定:用于模式的最左侧;
$:行尾锚定:用于模式的最右侧;
在这里插入图片描述
^PATTERN$:用于PATTERN来匹配整行
^$:空白行
^[[:space:]]*$:空行或包含空白字符的行

单词:非特殊字符组成的连续字符(字符串)都称是为单词;
\<或\b:词首锚定,用于单词模式的左侧;
\>或\b:词尾锚定,用于单词模式的右侧;
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
1.grep -v "/bin/bash$" /etc/passwd
在这里插入图片描述
2. grep "\<[0,9]\{2,3\}\>" /etc/passwd
在这里插入图片描述
3.grep "^[[:space:]]\+[^[:space:]]" /etc/grub2.cfg
在这里插入图片描述4.netstat -tan | grep "LISTEN[[:space:]]*$"
在这里插入图片描述分组及引用
():将一个或多字符捆绑在一起,当做一个整体进行处理;
例如:(xy)*ab
Note:分组括号中的模式匹配到的内容会被正则表达式引擎自动记录与内部的变量中,这些变量为:
\1:模式从左侧起,第一个左括号以及与之匹配的右括号之间的模式所匹配的字符
\2:模式从左侧起,第二个左括号以及与之匹配的右括号之间的模式所匹配的字符

例如:搜索前后都是love 或这前后都是like
在这里插入图片描述
后向引用:引用前面的分组括号中的模式所匹配的字符;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值