📜  Linux 中的 fgrep 命令及示例

📅  最后修改于: 2022-05-13 01:57:05.005000             🧑  作者: Mango

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”

-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.