在linux中,用到正则表达的常用工具有:grep,sed,awk等。
grep
-c(count) :打印符合要求的行数 -i (ignore-case):忽略大小写 -n (line-number):在输出符合要求的行的同时连同行号一起输出 -v (invert-natch):打印不符合要求的行 -A (after-context):后跟一个数字(有无空格都可以),例如 –A2则表示打印符合要求的行以及下面两行 -B (before-context):后跟一个数字,例如 –B2 则表示打印符合要求的行以及上面两行 -C (context):后跟一个数字,例如 –C2 则表示打印符合要求的行以及上下各两行 ^ :表示行的开始 $ :表示行的结尾 -E :表示组合
|
开始实践
cat pwd
点击查看代码root:x:0:0:root:/root:/bin/bash
root:x:0:0:Root:/root:/bin/root
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
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
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-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:999:997:User for polkitd:/:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
chrony:x:998:996::/var/lib/chrony:/sbin/nologin
apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin
tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
zabbix:x:997:995:Zabbix Monitoring System:/var/lib/zabbix:/sbin/nologin
mysql:x:27:27:MariaDB Server:/var/lib/mysql:/sbin/nologin
nginx:x:996:994:Nginx web server:/var/lib/nginx:/sbin/nologin
named:x:25:25:Named:/var/named:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
1 包含root
cat pwd | grep "root"
2 顺便打印行数
cat pwd | grep -n "root"
3 不区分大小写
cat pwd | grep -n -i "root"
4 反选
cat pwd | grep -n -v "root"
5 组合
cat pwd | grep -n -E "root|mysql"
6 以root开始
cat pwd | grep -n "^root"
7 以root结尾
cat pwd | grep -n "root$"
8 -A -B -C
cat pwd | grep -n -A2 "root"
cat pwd | grep -n -B2 "root"
cat pwd | grep -n -C2 "root"
9 字符. 任意一个字符
cat pwd | grep -n "r..t"
10 字符*
表示零个或多个前面的字符。
cat pwd | grep -n "ro*t"
sed工具的使用: