概述
fgrep
命令相当于执行 grep
命令加上 -F
选项,即搜索文件中的指定字符串。
fgrep
命令作用与 grep
和 egrep
命令不同,因为它搜索字符串而不是搜索匹配表达式的模式。fgrep
命令使用快速的压缩算法。$
、*
、[
、|
、(
、)
和 \
等字符串被 fgrep
命令按字面意思解释,这些字符并不解释为正则表达式。
语法
该命令的语法如下:
fgrep [选项] 指定字符串 文件名
该命令支持的选项有:
选项 | 说明 |
---|---|
-b | 在找到的每行之前添加行所在的块编号 |
-c | 仅显示匹配行的计数 |
-e | 指定模式 |
-f | 指定包含字符串的文件 |
-h | 当多个文件被处理时隐藏文件名 |
-H, --with-filename | 当搜索多个文件时,显示匹配文件名前缀 |
-i | 当进行比较时忽略字母的大小写 |
-l | 只列出包含匹配行的文件名(一次) |
-n | 将文件中每行的相对行号置于行前 |
-q | 不显示所有输出 |
-s | 仅显示出错消息 |
-v | 显示除了匹配特定模式的行以外的所有行 |
-w | 执行单词搜索 |
-x | 显示匹配模式的行,要求无额外的字符 |
-y | 当进行比较时忽略字符的大小写 |
注:
fgrep
可以使用grep -F
代替,所以不多讲用法。关于grep
命令的使用可以参考:Linux命令之查找字符串grep。
使用
把正则表达式字符当作普通字符进行搜索
该命令最大的作用就是将正则表达式中的元字符如 $
、*
、[
、|
、(
、)
和 \
等当作普通字符来进行查找。例如:
发现 fgrep
命令并没有找到文件中的数字行,因为它会去查找行中有字符串 "[0-9]"
的情况,而不是去匹配数字。