(一) grep 家族
grep, egrep, fgrep - 打印匹配给定模式的行
总览 SYNOPSIS
grep [options] PATTERN [FILE...]
grep [options] [-e PATTERN | -f FILE] [FILE...]
描述 DESCRIPTION
grep : 搜索以 FILE 命名的文件输入 (或者是标准输入,如果没有指定文件名,或者给出的文件名是 - 的话),寻找含有与给定的模式 PATTERN 相匹配的内容的行。 默认情况下, grep 将把含有匹配内容的行打印出来。
另外,也可以使用两个变种程序 egrep 和 fgrep 。 Egrep 与 grep -E 相同。 Fgrep 与 grep -F 相同。
egrep: 扩展grep,将模式 PATTERN 作为一个扩展的正则表达式来解释
fgrep: 固定grep(fixed grep) ,快速grep (fast grep),它按照字面解释所有字符。
以上的 \w \W \b 是grep里面的,不是正则里面的。
(二) grep 命令使用
grep 程序的输入可以来自标准输入或管道,而不仅仅是文件,例如:
2.1 标准输入:
2.2 管道
pa aux | grep 'sshd'
2.3 文件
grep 'alice' /etc/passwd /etc/shadow /etc/group /etc/gshadow
另外grep命令返回值:
#grep 'Tom' /etc/passwd
找到: grep返回的退出状态为0
没找到: grep返回的退出状态为1
找不到指定文件: grep返回的退出状态为2
(三) grep命令出常用选项
下面的原因是未转义-之前,grep把-v当选项了。就以为你没有给模式。
[hujianmei@localhost days_09]$ grep --help | grep '-v'
用法: grep [选项]... PATTERN [FILE]...
试用‘grep --help’来获得更多信息。
[hujianmei@localhost days_09]$ grep --help | grep 'v'
-v, --invert-match select non-matching lines
-V, --version display version information and exit
-a, --text equivalent to --binary-files=text
-I equivalent to --binary-files=without-match
-D, --devices=ACTION how to handle devices, FIFOs and sockets;
-r, --recursive like --directories=recurse
-R, --dereference-recursive
WHEN is 'always', 'never', or 'auto'
[hujianmei@localhost days_09]$ grep --help | grep '\-v'
-v, --invert-match select non-matching lines
-V, --version display version information and exit
[hujianmei@localhost days_09]$ grep --help | egrep '-v'
用法: grep [选项]... PATTERN [FILE]...
试用‘grep --help’来获得更多信息。
[hujianmei@localhost days_09]$ grep --help | grep '\-v'
-v, --invert-match select non-matching lines
-V, --version display version information and exit
[hujianmei@localhost days_09]$
[hujianmei@localhost days_09]$ 查看匹配行的前2行^C
[hujianmei@localhost days_09]$ grep -B2 'hujianmei' /etc/passwd
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
hujianmei:x:1000:1000:hujianmei:/home/hujianmei:/bin/bash
[hujianmei@localhost days_09]$ 查看匹配行的后两行^C
[hujianmei@localhost days_09]$ grep -A2 'hujianmei' /etc/passwd
hujianmei:x:1000:1000:hujianmei:/home/hujianmei:/bin/bash
apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin
mysql:x:27:27:MariaDB Server:/var/lib/mysql:/sbin/nologin
[hujianmei@localhost days_09]$ 查看匹配行的上下2行^C
[hujianmei@localhost days_09]$ grep -C2 'hujianmei' /etc/passwd
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
hujianmei:x:1000:1000:hujianmei:/home/hujianmei:/bin/bash
apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin
mysql:x:27:27:MariaDB Server:/var/lib/mysql:/sbin/nologin
[hujianmei@localhost days_09]$
[hujianmei@localhost days_09]$ grep -n 'hujianmei' /etc/passwd
45:hujianmei:x:1000:1000:hujianmei:/home/hujianmei:/bin/bash
[hujianmei@localhost days_09]$
[hujianmei@localhost days_09]$
[hujianmei@localhost days_09]$ 用vim打开时指定跳转到那一行^C
[hujianmei@localhost days_09]$ vim /etc/passwd +50
[hujianmei@localhost days_09]$
来源:CSDN
作者:胡 胡 大 妞
链接:https://blog.csdn.net/xx_ay/article/details/104414806