正则表达式
是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。
grep
- grep常用参数:
以关键词筛选行,还会把关键词以红色高亮显示
[root@tanyvlinux ~]# grep '^#' /etc/sos.conf -n #查找以#开头的行,^表示首位;
3:#disable = rpm, selinux, dovecot
7:#rpm.rpmva = off
8:#general.syslogsize = 15
[root@tanyvlinux ~]# grep '^#' /etc/sos.conf -nv #查找不以#开头的行;
1:[plugins]
2:
4:
5:[tunables]
6:
9:
[root@tanyvlinux ~]# grep '^$' /etc/sos.conf -nv #查找不为空的行,$表示结尾;
1:[plugins]
3:#disable = rpm, selinux, dovecot
5:[tunables]
7:#rpm.rpmva = off
8:#general.syslogsize = 15
[root@tanyvlinux ~]# grep '^$' /etc/sos.conf -n #查找为空的行;
2:
4:
6:
9:
[root@tanyvlinux ~]# grep '^[^a-u]' passwd -n #查找不是a-u开头的行,找出v和z开头两行;
20:vsftpd:x:1000:1000::/home/vsftpd:/sbin/nologin
55:zabbix:x:986:979:Zabbix Monitoring System:/var/lib/zabbix:/sbin/nologin
[root@tanyvlinux ~]# grep '^[^a-u]' passwd -nvc #a-u开头的行有54行;
54
[root@tanyvlinux ~]# wc -l passwd #一共56行;
56 passwd
[root@tanyvlinux ~]# grep '[^1]' passwd -nc #不是1的所有字符都是关键词,红色内容很多;
56
[root@tanyvlinux ~]# grep '[1]' passwd -nc #显示带1的行,只有1是红色显示;
26
r.o 代表查找的关键词是三个字符,其中.代表所有字符包括空格和符号;
o* 代表查找的关键词是o,0个或以上的o都符合条件;
oo* 代表查找的关键词是o+o*,一个或以上的o符合条件;
ro* 代表查找的关键词是r+o*,r加上0个或以上的o都符合条件;
.* 代表任意个任意字符,前后加内容使用更方便;
o{2} 代表带两个相连的o都符合条件;
ro+ 代表r加上一个或以上的o符合条件;+要用egrep使用;
ro 代表有一个ro符合条件,跟上面的高亮不一样;
ro? 代表r加上0个或1个o符合条件,r, ro符合条件;?要用egrep使用;
root|bash 代表带其中一个关键词的行符合条件;|要用egrep使用;
(oo){2} 代表连续两个oo相连符合条件,带oooo符合条件;()要用egrep使用;