过滤多个关键字
#grep -E ‘root|mysql’ /etc/passwd
root❌0:0:root:/root:/bin/bash
operator❌11:0:operator:/root:/sbin/nologin
mysql❌500:500::/home/mysql:/sbin/nologin

排除多个关键字
cat /etc/passwd| grep -vE ‘mysql|root’
bin❌1:1:bin:/bin:/sbin/nologin
daemon❌2:2:daemon:/sbin:/sbin/nologin
adm❌3:4:adm:/var/adm:/sbin/nologin

在这里插入图片描述
输出结果都是
inet addr:192.168.16.226 Bcast:192.168.16.255 Mask:255.255.255.0

grep的-A-B-选项详解
grep能找出带有关键字的行,但是工作中有时需要找出该行前后的行
#grep -A1 nobody /etc/passwd
nobody❌99:99:Nobody:/:/sbin/nologin
dbus❌81:81:System message bus:/:/sbin/nologin
以上 输出中除显示该行外,还显示之后的一行(After 1)
#grep -B1 nobody /etc/passwd
ftp❌14:50:FTP User:/var/ftp:/sbin/nologin
nobody❌99:99:Nobody:/:/sbin/nologin
以上 输出中除显示该行外,还显示之前的一行(Before 1)
#grep -1 nobody /etc/passwd
ftp❌14:50:FTP User:/var/ftp:/sbin/nologin
nobody❌99:99:Nobody:/:/sbin/nologin
dbus❌81:81:System message bus:/:/sbin/nologin
以上输出中除显示该行外,还显示之前的一行(Before 1)和显示之后的一行(After 1)

只打印匹配出来的字符 -o参数
#grep -o nobody /etc/passwd
nobody

忽略大小写 -i参数
#grep -i nobody /etc/passwd
nobody❌99:99:Nobody:/:/sbin/nologin
NoBody❌99:99:Nobody:/:/sbin/nologin

Logo

更多推荐