grep家族
grep家族由命令grep、egrep和fgrep组成。
grep:在文件中全局查找指定的正则表达式,并且打印所有包含该表达式的行。
egrep和fgrep是grep的变体。
egrep:grep的扩展,提供更多正则表达式元字符支持。
fgrep:固定grep或快速grep,它按字面解释所有字符,即不会处理正则表达式元字符。
- grep
优点:不需要启动编辑器就可以执行查找操作,也用不着把正则表达式括在正斜杠中,使用grep比使用vi快得多。
grep命令在一个或多个文件中查找某个字符模式。
grep命令中,模式可以是一个被引号括起来的字符串,也可以是单个词,位于模式之后的所有单词都被视为文件名。如果这个模式中包含空格,就必须用引号把它括起来。
grep将输出发送到屏幕,它不会对输入文件进行任何修改或变化。
grep使用的正则表达式元字符:
元字符 |
功能 |
示例 |
^ |
行首定位符 |
/^love/ |
$ |
行尾定位符 |
/love$/ |
. |
匹配单个字符 |
/l..e/ |
* |
匹配零个或多个字符 |
/ *love/ |
[ ] |
匹配一组字符中的一个 |
/[Ll]ove/ |
[x-y] |
匹配指定范围中的一个字符 |
/[A-Z]ove/ |
[^ ] |
匹配不在指定组中的字符 |
/[^A-Z]/ |
\ |
转义元字符 |
/love\./ |
元字符 |
功能 |
示例 |
\< |
词首定位符 |
/\<love/ |
\> |
词尾定位符 |
/love\>/ |
\(..\) |
匹配稍后将要使用的字符的标签 |
/\(love\)able\1er/ |
x\{m\}或 x\{m,\}或 x\{m,n\} |
字符x的重复出现: m次、 至少m次、 至少m次且不超过n次 |
o\{5,10\} |
grep的退出状态:
grep命令在shell脚本中很有用,因为它总会返回一个退出状态,以说明能否定位到要查找的模式或文件。
如果找到了模式,grep返回的状态为0,表示成功。
如果找不到模式,返回1作为退出状态。
当找不到文件时,返回2作为推出状态。