grep #文件内容过滤显示
#在指定的普通文件中查找并显示含有指定字符串的行,也可与管道符一起使用
格式:
grep-参数 查找条件 文件名
参数:
示例:
[root@node1 ~]# grep -n "root" /etc/passwd # -n:显示行号
1:root:x:0:0:root:/root:/bin/bash
10:operator:x:11:0:operator:/root:/sbin/nologin[root@node1 ~]# grep -c "sbin" /etc/passwd #统计过滤到的行数
47[root@node1 ~]# grep -nv "sbin/nologin" /etc/passwd #-n:显示行号 -v:取反
1:root:x:0:0:root:/root:/bin/bash
6:sync:x:5:0:sync:/sbin:/bin/sync
7:shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
8:halt:x:7:0:halt:/sbin:/sbin/halt
47:mysql:x:27:27:MySQL Server:/var/lib/mysql:/bin/false[root@node1 ~]# grep -ni "d" /etc/passwd #过滤含有d的行且忽略大小写
grep特殊符号匹配:
示例一:
[root@node1 ~]# grep '^a' /etc/passwd #定位行首以a开头的
adm:x:3:4:adm:/var/adm:/sbin/nologin
apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin[root@node1 ~]# grep '^#' /etc/passwd #检索注释开头的行
[root@node1 ~]# grep "\.$" /etc/fstab #必须有转义符,过滤以.结尾的行
# Accessible filesystems, by reference, are maintained under '/dev/disk/'.
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info.
# units generated from this file.[root@node1 ~]# grep "^$" /etc/passwd #查看文件的空白行
示例二:
[root@node1 ~]# grep [5-9] /etc/passwd #过滤含有5-9数字的模糊查询
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
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin[root@node1 ~]# grep -w [5-9] /etc/passwd #过滤含有5-9数字的精准查询
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
示例三:
[root@node1 ~]# grep [root] /etc/passwd #过滤含有 r 或 o 或 t 的行
root:x:0:0:root:/root:/bin/bash
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
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[root@node1 ~]# grep ^[root] /etc/passwd #过滤以 r 或 o 或 t 的开头的行
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
tss:x:59:59:Account used for TPM access:/dev/null:/sbin/nologin
rpc:x:32:32:Rpcbind Daemon:/var/lib/rpcbind:/sbin/nologin
radvd:x:75:75:radvd user:/:/sbin/nologin
rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin
rtkit:x:172:172:RealtimeKit:/proc:/sbin/nologin[root@node1 ~]# grep [^root] /etc/passwd #反向显示,显示不包含r或o或t
root:x:0:0:root:/root:/bin/bash
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:65534:65534:Kernel Overflow User:/:/sbin/nologin
示例四:
[root@node1 ~]# grep [0-9]$ /etc/passwd #过滤以数字结尾的行
[root@node1 ~]# grep ^[0-9] /etc/passwd #过滤以数字开头的行