Linux fgrep命令教程:全面解析fgrep命令的使用方法(附实例详解和注意事项)

Linux fgrep命令介绍

fgrep(全称:Fixed Global Regular Expression Print)是一个在文件中搜索固定字符串的过滤器。这个命令在你需要搜索包含大量正则表达式元字符(如“^”、“$”等)的字符串时非常有用。

Linux fgrep命令适用的Linux版本

fgrep命令在大多数Linux发行版中都可以使用,包括但不限于Debian、Ubuntu、Alpine、Arch Linux、Kali Linux、RedHat/CentOS、Fedora和Raspbian。如果在某些Linux发行版中无法使用fgrep命令,通常是因为没有安装相应的软件包。在这种情况下,可以通过包管理器(如apt、yum或dnf)来安装。例如,在Debian或Ubuntu上,可以使用以下命令来安装:

[linux@bashcommandnotfound.cn ~]$ sudo apt-get install grep

在RedHat/CentOS 7上,可以使用以下命令来安装:

[linux@bashcommandnotfound.cn ~]$ sudo yum install grep

在RedHat/CentOS 8或Fedora上,可以使用以下命令来安装:

[linux@bashcommandnotfound.cn ~]$ sudo dnf install grep

Linux fgrep命令的基本语法

fgrep命令的基本语法如下:

fgrep [options] [ -e pattern_list] [pattern] [file]

这里,options是命令选项,-e pattern_list是要搜索的字符串列表,pattern是要搜索的字符串,file是要搜索的文件。如果没有指定文件,fgrep命令将从标准输入读取数据。

Linux fgrep命令的常用选项或参数说明

以下是fgrep命令的一些常用选项:

选项 说明
-c 只打印包含匹配行的计数
-h 显示匹配的行
-i 在比较时忽略大小写
-l 打印匹配行的文件名
-n 在每行前面加上其在文件中的行号(第一行是1)
-s 只显示错误消息
-v 打印所有不包含匹配模式的行
-x 只打印完全匹配的行
-e pattern_list 搜索pattern-list中的字符串
-f pattern-file 从pattern-file中获取模式列表

Linux fgrep命令实例详解

下面是一些fgrep命令的使用实例:

实例1:使用-c选项

使用-c选项可以找出文件中匹配给定字符串的行数。例如:

[linux@bashcommandnotfound.cn ~]$ fgrep -c "usin.g" para

输出:

1

这表示在文件para中,有1行包含字符串"usin.g"。

实例2:使用-h选项

使用-h选项可以显示匹配的行。例如:

[linux@bashcommandnotfound.cn ~]$ fgrep -h "usin.g" para

输出:

Hi, @re you usin.g geeks*forgeeks for learni\\ng computer science con/cepts.

这表示在文件para中,这行包含字符串"usin.g"。

实例3:使用-i选项

使用-i选项可以执行不区分大小写的搜索。它会匹配诸如"geeksforgeeks"和"Geeksforgeeks"这样的单词。例如:

[linux@bashcommandnotfound.cn ~]$ 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.

这表示在文件para中,这两行都包含字符串"geeks*forgeeks"。

实例4:使用-l选项

使用-l选项可以打印出包含匹配行的文件名。例如:

[linux@bashcommandnotfound.cn ~]$ fgrep -l "geeks*forgeeks" para1 para2

输出:

para1

这表示在文件para1中,存在包含字符串"geeks*forgeeks"的行。

实例5:使用-n选项

使用-n选项可以在每行前面加上其在文件中的行号。例如:

[linux@bashcommandnotfound.cn ~]$ fgrep -n "geeks*forgeeks" para

输出:

1:Hi, @re you usin.g geeks*forgeeks for learni\\ng computer science con/cepts.
3:Geeks*forgeeks is best for learni\\ng.

这表示在文件para中,第1行和第3行都包含字符串"geeks*forgeeks"。

实例6:使用-s选项

使用-s选项可以只显示错误消息。例如:

[linux@bashcommandnotfound.cn ~]$ fgrep -s "geeks*forgeeks" para

如果文件para不存在,那么这个命令不会输出任何内容。

实例7:使用-v选项

使用-v选项可以打印所有不包含匹配模式的行。例如:

[linux@bashcommandnotfound.cn ~]$ fgrep -v "geeks*forgeeks" para

输出:

This is a test line.

这表示在文件para中,这行不包含字符串"geeks*forgeeks"。

Linux fgrep命令的注意事项

  • fgrep命令将模式视为固定字符串列表,而不是正则表达式。
  • 如果你在某个Linux发行版中无法使用fgrep命令,可能是因为没有安装相应的软件包。在这种情况下,你可以尝试使用包管理器(如apt、yum或dnf)来安装。
  • 如果你在使用fgrep命令时遇到了"bash: fgrep: command not found"的错误,你可以按照上面的方法来安装fgrep命令。

Linux fgrep相关命令

以下是一些与fgrep命令相关的命令:

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-02-21 10:44:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-02-21 10:44:02       100 阅读
  3. 在Django里面运行非项目文件

    2024-02-21 10:44:02       82 阅读
  4. Python语言-面向对象

    2024-02-21 10:44:02       91 阅读

热门阅读

  1. 【算法题】114. 二叉树展开为链表

    2024-02-21 10:44:02       48 阅读
  2. 实习日志22

    2024-02-21 10:44:02       39 阅读
  3. Python日志(logging)

    2024-02-21 10:44:02       42 阅读
  4. C 语言中的 const 关键字详解

    2024-02-21 10:44:02       49 阅读
  5. aop实现统一处理日志

    2024-02-21 10:44:02       48 阅读
  6. OpenHarmony下gn相关使用

    2024-02-21 10:44:02       55 阅读