Linux 中的 fgrep 命令及示例
fgrep过滤器用于搜索文件中的固定字符串。也可以搜索多个文件。当您需要搜索包含大量正则表达式元字符(例如“^”、“$”等)的字符串时,此命令很有用。
句法:
fgrep [options] [ -e pattern_list] [pattern] [file]
带有描述的选项:
- -c :用于仅打印包含模式的行数。
- -h :用于显示匹配的行。
- -i :在比较期间,它将忽略大小写的区别。
- -l :用于打印一次匹配行的文件名,用换行符分隔。当模式被发现不止一次时,它不会重复文件的名称。
- -n :在每行之前使用它在文件中的行号(第一行是 1)。
- -s :它只会显示错误信息。
- -v :打印除包含该模式的所有行。
- -x :仅打印完全匹配的行。
- -e pattern_list :在模式列表中搜索字符串(当字符串以“-”开头时很有用)。
- -f 模式文件:从模式文件中获取模式列表。
- pattern :指定在搜索输入期间要使用的模式。
- file :要搜索模式的文件的路径名。如果没有指定文件操作数,将使用标准输入。
下面是带有选项的示例来说明 fgrep 命令:
考虑以下文件作为输入。这里是使用 cat 命令创建的, “文件名是 para” 。
Hi, @re you usin.g geeks*forgeeks for learni\ng computer science con/cepts.
Geeks*forgeeks is best for learni\ng.
-c 选项:显示匹配数。我们可以找到与给定字符串匹配的行数。
例子:
$fgrep -c "usin.g" para
输出:
1
-h 选项:显示匹配的行。
例子:
fgrep -h "usin.g" para
输出:
Hi, @re you usin.g geeks*forgeeks for learni\ng computer science con/cepts.
-i 选项:用于不区分大小写的搜索。它在比较过程中忽略了大写/小写的区别。它匹配诸如“geeks*forgeeks”、“Geeks*forgeeks”之类的词。
例子:
fgrep -i "geeks*forgeeks" para
输出:
Hi, @re you usin.g geeks*forgeeks for learni\ng computer science con/cepts.
Geeks*forgeeks is best for learni\ng.
-l 选项:它将显示与模式匹配的文件名。我们可以只显示包含给定字符串/pattern 的文件。
例子:
fgrep -l "geeks*forgeeks" para para2
输出:
对
-n 选项:在每行前面加上文件中的行号。它显示与行匹配的文件的行号。
例子:
$ fgrep -n "learni\ng" para
输出:
1:Hi, @re you usin.g geeks*forgeeks for learni\ng computer science con/cepts.
2:Geeks*forgeeks is best for learni\ng.
-v 选项:用于显示除包含模式的行之外的所有行。它将打印除包含该模式的行之外的所有行。
例子:
fgrep -v "@re" para
输出:
Geeks*forgeeks is best for learni\ng.
-x 选项:它将仅显示完全匹配的行。
示例 1:
fgrep -x "@re" para
输出:
示例 2:
fgrep -x "Geeks*forgeeks is best for learni\ng." para
输出:
Geeks*forgeeks is best for learni\ng.