grep是Linux下最常用的命令之一,用于查找文件中查找指定的正则表达式。egrep和fgrep是grep的变体。egrep(Extend grep)相当于grep –E,支持更多的正则表达式元字符。fgrep(Fixed grep)相当于grep –F, 它按字面意思解释所有字符。
grep的使用格式如下:
grep [options] PATTERN [FILE...]
grep [options] [-e PATTERN | -f FILE] [FILE...]
grep的options如下表:
选 项 | 功 能 |
-[NUM] NUM=[0123456789] | 输出匹配行前后的NUM行 |
-A NUM | 输出匹配行后(after)的NUM行 |
-B NUM | 输出匹配行前(before)的NUM行 |
-C NUM | 输出匹配行前后NUM行 |
-c | 不输出行内容,只输出匹配行数 |
-D ACTION | 用ACTION来处理目录内容 |
-E | egrep |
-e PATTERN | 将PATTERN作为模式来解释,对于以-开始的模式会有用 |
-F | fgrep |
-f FILE | 从FILE中获取模式,一行一个 |
-G | 将PATTERN按基本的正则表达式解释,默认值 |
-H | 输出带文件名 |
-h | 当搜索多文件时制止输出前面的文件名 |
-i -y | 比较字符时忽略大小写 |
-n | 在每一行前加上它在文件中的相对行号 |
-q | 不输出,如果有匹配以0状态退出 |
-R -r | 递归查找 |
-s | 只不出错误 |
-V | 输出版本号 |
-v | 反向查找,只显示不匹配的行 |
-w | 单词匹配,只查找一个词,而不是词的一部分匹配的模式 |
-x | 显示全行符合的行 |
-l | 不输出文本行,只输出包含模式的文件名 |
-L | 类似-l,只是输出“不”包含模式的文件名 |