为文件搜索文字字符串。
fgrep [ -h] [ -i] [ -s] [ -v] [ -w ] [ -x] [ -y ] [ [ -b] [ -n] | [ -c | -l | -q ] ] [ -pSeparator] {Pattern | -ePattern | -fStringFile} [File...]
fgrep 命令 搜索 File 参数指定的输入文件(缺省 为标准输入)中的匹配模式的行。fgrep 命令特别搜索 Pattern 参数,它们 是固定的字符串。如果在 File 参数中指定一个以上的文件 fgrep 命令将显示包含匹配行的文件。
fgrep 命令于 grep 和 egrep 命令不同,因为它搜索字符串而不是搜索匹配表达式的模式。fgrep 命令使用快速的压缩算法。$, *, [, |, (, ) 和 \ 等字符串被 fgrep 命令按字面意思解释。这些字符并不解释为正则表达式,但它们在 grep 和 egrep 命令中解释为正则表达式。因为这些字符对于 shell 有特定的含义,完整的字符串应该加上单引号(‘ ... ’)。. 如果没有指定文件, fgrep 命令假定标准输入。一般,找到的每行都复制到标准输出中去。如果不止一个输入文件,则在找到的每行前打印文件名。
注意:
- fgrep 命令和带 -F 标志的 grep命令是一样的但出错和用法消息不同-s 标志功能也不同。
- 每行限制在 2048 个字节。
- 段落(-p 标志下)目前限制在5000个字符的长度。
- 不要在特定的文件中运行 grep 命令,因为会产生不可预料的结果。
- 输入行不能包含空字符。
- 输入文件应该以换行字符结尾。
- 虽然可以同时指定很多标志,但某些标志会覆盖其余的标志。例如,如果同时指定 -l 和 -n ,只有文件名写入到标准输出中去。
此命令返回以下出口值:
0 | 找到匹配项。 |
1 | 未找到匹配项。 |
>1 | 发现语法错误,或者文件不可访问(即使找到了匹配项)。 |
fgrep strcpy *.c
在当前目录下所有以 .c 字符串结尾的文件中搜索字符串 strcpy。
显示在 pgm.c 中包含左括号和右括号的行的数目。
如果在您的 C 程序中一行中没有包含多于一个 { (左括号) 或者 } (右括号),并且括号正确匹配,那么这两个数字将是一样的。如果这两个数字不一样,您可以将包含括号的行按照他们在文件中的位置顺序显示出来,使用以下命令:
egrep {\|} pgm.c
搜索当前目录下以 .c 结尾的文件,然后显示包含 strcpy 字符串的文件名。
/usr/bin/fgrep | 包含 fgrep 命令。 |
/bin/fgrep | 链接到 fgrep 命令的符号。 |
ed 命令, egrep 命令, grep 命令, sed 命令。
《AIX 5L V5.2 系统用户指南:操作系统与设备》中的『文件概述』向您介绍文件并且告知您处理它们的方式。
《AIX 5L V5.2 系统用户指南:操作系统与设备》中的『输入和输出重定向概述』描述了操作系统如何处理输入输出。