1. grep命令介绍
GREP是Global search Regular Expression and Print out the line的简称,即全面搜索正则表达式并把行打印出来。GREP是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来,greap也是Linux中最广泛使用的命令之一。本文主要介绍grep命令,并简略介绍grep命令族中的其他命令用法。
2. grep命令基本用法
grap命令是支持正则表达式的一个多用途文本搜索工具,grep的一般格式为:
grep [选项] [模式] [文件...]
grep命令由选项、模式和文件三部分组成,它在一个或多个文件中搜索满足模式的文本行,模板后的所有字符串被看做文件名,文件名可以有多个,搜索的结果被打印到屏幕。
grep命令的选项及其意义如下:
选项 | 意义 |
-c | 只输出匹配行的数量 |
-i | 搜索时忽略大小写 |
-h | 查询多文件时不显示文件名 |
-l | 只列出符合匹配的文件名,而不列出具体的匹配行 |
-n | 列出所有的匹配航,并显示行号 |
-s | 不显示不存在或无匹配文本的错误信息 |
-v | 显示不包含匹配文本的所有行 |
-r | 递归搜索,不仅搜索当前工作目录,而且搜索子目录 |
-E | 支持扩展的正则表达式 |
-F | 不支持正则表达式,按照字符串的字面意思进行匹配 |
... | ... |
grep命令的模式十分灵活,可以是字符串,也可以是变量,还可以是正则表达式。需要说明的是,无论模式是何种形式,只要模式中包含空格,就需要使用双引号将模式引起来,如果不加双引号,空格后的单词容易被误误认为是文件名。
---经在Ubuntu上尝试,不用空格也是可以成功搜索的,只是显示的结果稍微有一点区别。
grep支持多文件查询,如:
#多文件查询
grep certificate 00.pem 08.pem
grep命令指定多个文件时可以使用通配,这样就不必逐个给出待搜索的文件了,例如:
grep certificate o?.pem
具体的选项的使用可以通过查询帮助信息获得详细的说明。
3. grep命令族简介
Linux系统支持三种形式的grep命令,通常将这三种形式的grep命令称为grep命令族,这三种形式具体为:
grep:标准grep命令,支持基本正则表达式;
egrep:扩展grep命令,支持基本和扩展正则表达式;
fgrep:快速grep命令,不支持正则表达式,按照字符串的字面意思进行匹配。
egrep命令与grep -E等价,fgrep命令与grep -F等价,在某些Linux的发型版中,egrep和fgrep都是grep命令的别名,分别将其符号链接到grep -E和grep -F命令。
egrep和fgrep命令极少使用,因为grep命令已十分强大,足以替代egrep和fgrep命令,它们的用法就不介绍了。