描述:在指定的文件或标准输出、标准输入内,查找知足条件的内容,起过滤做用,支持正则表达式。正则表达式
用法:grep [option] 文件名shell
经常使用参数:bash
示例:1.显示/etc/passwd文件中含有root的行,并在行首加上所在行号。spa
[root@share22 ~]# grep -n root /etc/passwd 1:root:x:0:0:root:/root:/bin/bash 10:operator:x:11:0:operator:/root:/sbin/nologin
2.显示/etc/passwd文件中不包含root的行。code
[root@share22 ~]# grep -v root /etc/passwd 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 games:x:12:100:games:/usr/games:/sbin/nolog
3.显示/etc 目录中(包含子目录)的全部文件中包含以yes结尾的行,并忽略大小写。递归
[root@share22 ~]# grep -iR 'yes$' /etc /etc/yum/yum-cron.conf:update_messages = yes /etc/yum/yum-cron.conf:download_updates = yes /etc/systemd/bootchart.conf:#Filter=yes /etc/systemd/journald.conf:#Compress=yes /etc/systemd/journald.conf:#Seal=yes /etc/systemd/journald.conf:#ForwardToSyslog=yes /etc/systemd/logind.conf:#LidSwitchIgnoreInhibited=yes /etc/systemd/system/getty.target.wants/getty@tty1.service:IgnoreOnIsolate=yes /etc/systemd/system/getty.target.wants/getty@tty1.service:TTYReset=yes /etc/systemd/system/getty.target.wants/getty@tty1.service:TTYVHangup=yes /etc/systemd/system/getty.target.wants/getty@tty1.service:TTYVTDisallocate=yes /etc/systemd/system/getty.target.wants/getty@tty1.service:SendSIGHUP=yes /etc/systemd/system/multi-user.target.wants/kdump.service:RemainAfterExit=yes
4.grep命令不输出结果,经过命令返回值$?判断,经常使用于shell脚本中。字符串
[root@share22 ~]# grep -q root /etc/passwd [root@share22 ~]# echo $? 0
egrep 与 grep -E 相等;fgrep与grep -F相等。get
egrep:字符串处理
为 grep 的扩充版本, 改良了许多传统 grep 不能或不便的操做. 比方说:it
- grep 之下不支持 ? 与 + 这两种 modifier, 但 egrep 则可。
- grep 不支持 a|b 或 (abc|xyz) 这类"或一"比对, 但 egrep 则可。
- grep 在处理 {n,m} 时, 需用 \{ 与 \} 处理, 但 egrep 则不需。
fgrep:
不做RE处理,表达式仅做通常字符串处理,全部meta均失去功能。