文件管理 · 2022年02月20日 0

fgrep命令 – 为文件搜索文字字符串

fgrep命令的作用是用来搜索file参数指定的输入文件(缺省为标准输入)中的匹配模式的行。fgrep 命令特别搜索Pattern参数,它们是固定的字符串。如果在File 参数中指定一个以上的文件fgrep命令将显示包含匹配行的文件。 fgrep命令 作用与grep和egrep命令不同,因为它搜索字符串而不是搜索匹配表达式的模式。fgrep命令使用快速的压缩算法。$, *, [, |, (, )和\等字符串被fgrep命令按字面意思解释。这些字符并不解释为正则表达式。 如果没有指定文件,fgrep命令假定标准输入。一般,找到的每行都复制到标准输出中去。如果不止一个输入文件,则在找到的每行前打印文件名。 fgrep有以下相关属性: * fgrep 命令和带 -F 标志的 grep命令是一样的但出错和用法消息不同-s 标志功能也不同。 * 每行限制在 2048 个字节。 * 段落(-p 标志下)目前限制在5000个字符的长度。 * 不要在特定的文件中运行 grep 命令,因为会产生不可预料的结果。 * 输入行不能包含空字符。 * 输入文件应该以换行字符结尾。 * 虽然可以同时指定很多标志,但某些标志会覆盖其余的标志。例如,如果同时指定 -l 和 -n ,只有文件名写入到标准输出中去。 **语法格式:** fgrep [参数] **常用参数:** | -b | 在找到的每行之前添加行所在的块编号 | | ------------- | ------------------------------------------------ | | -c | 仅显示匹配行的计数 | | -e | 指定模式 | | -f | 指定包含字符串的文件 | | -h | 当多个文件被处理时隐藏文件名 | | -i | 当进行比较时忽略字母的大小写 | | -l | 只列出包含匹配行的文件名(一次) | | n | 将文件中每行的相对行号置于行前 | | -pSeparator | 显示包含匹配行的整个段落 | | -q | 禁止所有写入到标准输出的操作,不管是否为匹配行 | | -s | 仅显示出错消息 | | -v | 显示除了匹配特定模式的行以外的所有行 | | -w | 执行单词搜索 | | -x | 显示匹配模式的行,要求无额外的字符 | | -y | 当进行比较时忽略字符的大小写 | **参考实例** 当前目录下所有以 .c字符串结尾的文件中搜索字符串strcpy: ``` [root@anycode ~]# fgrep strcpy *.c ``` 搜索当前目录下以 .c 结尾的文件,然后显示包含 strcpy 字符串的文件名: ``` [root@anycode ~]# fgrep -l strcpy *.c ``` 匹配含有a的行: ``` [root@anycode ~]# cat linuxcool.sh |fgrep a ```