为文件搜索文字字符串,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 ,只有文件名写入到标准输出中去。

命令语法

fgrep [选项][参数]

命令选项

  • -b:在找到的每行之前添加行所在的块编号。使用此标志有助于按照上下文查找磁盘块号码。-b 标志不能用于标准输入或者管道输入。
  • -c:仅显示匹配行的计数。
  • -e 模式:指定模式。这个工作模式很简单,但当此模式以 a-(减号) 开头时却是很有用的。
  • -f StringFile:指定包含字符串的文件。
  • -h:当多个文件被处理时隐藏文件名。
  • -i:当进行比较时忽略字母的大小写。
  • -l:只列出包含匹配行的文件名(一次)。文件名之间用换行符分隔。
    n:将文件中每行的相对行号置于行前。
  • -pSeparator:显示包含匹配行的整个段落。段落之间将按照Separator参数指定的段落分隔符加以分隔,这些分隔符是与搜索模式有着相同格式的模式。包含段落分隔符的行将仅用作分隔符;它们不会被包含在输出中。缺省的段落分隔符是空白行。
  • -q:禁止所有写入到标准输出的操作,不管是否为匹配行。如果选中输入行,以 0 状态退出。
  • -s:仅显示出错消息。这在检查状态时很有用。
  • -v:显示除了匹配特定模式的行以外的所有行。
  • -w:执行单词搜索。
  • -x:显示匹配模式的行,要求无额外的字符。
  • -y:当进行比较时忽略字符的大小写。

命令返回值

  • 0 找到匹配项。
  • 1 未找到匹配项。
  • >1发现语法错误,或者文件不可访问(即使找到了匹配项)。

搜索几个文件中的一个简单字符串

> fgrep rumenz *.txt

在当前目录下所有以 .txt 字符串结尾的文件中搜索字符串 rumenz

计数匹配某模式的行数

> fgrep -n "{" rumenz.txt
1:one{

如果在您的 C 程序中一行中没有包含多于一个 { (左括号) 或者 } (右括号),并且括号正确匹配,那么这两个数字将是一样的。如果这两个数字不一样,您可以将包含括号的行按照他们在文件中的位置顺序显示出来,使用以下命令:

> egrep {\|} rumenz.txt
one{
}

显示包含某模式的文件名:

> fgrep -l "123" *.txt
rumenz.txt

原文链接:https://rumenz.com/rumenbiji/linux-fgrep.html
微信公众号:入门小站

  • 回复【1001】获取 linux常用命令速查手册
  • 回复【10010】获取 阿里云ECS运维Linux系统诊断
  • 回复【10012】获取 Linux学习笔记【强悍总结值得一看】
  • 回复【10013】获取 shell简明教程

Linux之fgrep命令相关推荐

  1. 【Linux】一步一步学Linux——fgrep命令(了解)(51)

    00. 目录 文章目录 00. 目录 01. 命令概述 02. 命令格式 03. 常用选项 04. 参考示例 05. 附录 01. 命令概述 本指令相当于执行grep指令加上参数"-F&qu ...

  2. Linux的watch命令--实时监测命令的运行结果

    watch 是一个非常实用的命令,基本所有的 Linux 发行版都带有这个小工具,如同名字一样,watch 可以帮你监测一个命令的运行结果,省得你一遍遍的手动运行.直接在 watch 后面接你想运行的 ...

  3. linux企业常用命令必之必会二

    本文档使用说明: 文档在整理过程中参照了书籍<linux必知必会基本命令>,同时对书中出现的不常用的命令和错误进行的挑选和删改,在学习此文档中出现的内容.有不懂的地方可以在自行查阅资料, ...

  4. Linux中常见命令和单词的缩写全称

    Linux中常见命令和单词的缩写全称 文章目录: 参考 ls:list(列出目录内容)cd:Change Directory(改变目录) su:switch user 切换用户 rpm:redhat ...

  5. Linux基础常用命令

    ps -ef用于查看全格式的全部进程,其中"ps"是在Linux中是查看进程的命令,"-e "参数代表显示所有进程,"-f"参数代表全格式. ...

  6. Linux中grep命令的12个实践例子

    你是否遇到过需要在文件中查找一个特定的字符串或者样式,但是不知道从哪儿开始?那么,就请grep来帮你吧. grep是每个Linux发行版都预装的一个强有力的文件模式搜索工具.无论何种原因,如果你的系统 ...

  7. 匹配行linux中grep命令的使用

    最近个人几篇文章介绍了改匹配行的文章. 关联文章的地址 linux中grep命令的用使 grep (global search regular expression(RE) and print out ...

  8. Linux下查找命令

    转载自  Linux下查找命令 一.Linux查找文件的相关命令 常 用 命 令 简要中文说明 程序所在目录 more 分页显示一个文件或任何输出结果 /bin less 分页显示一个文件并且可以回头 ...

  9. Linux 下 Shell 命令的分类及用法

    当你打算真正操纵好你的 Linux 系统,没有什么能比命令行界面更让你做到这一点.为了成为一个 Linux 高手,你必须能够理解 Shell命令的不同类型,并且会在终端下正确的使用它们. 在 Linu ...

最新文章

  1. Python 进阶_OOP 面向对象编程_self 的实例绑定
  2. mysql逆向工程_Mybatis+Mysql逆向工程
  3. jsp简单练习-简单的下拉表单
  4. arm汇编:.balignl伪指令理解
  5. jquery ajax传值和后台取参数
  6. PHP环境,放置系统盘的文件
  7. MICROSOFT REPORT VIEWER 2012之无法加载相关的dll
  8. 圆形取景框 相机_据说这款设备可以使老旧单反相机解决无线联机拍摄方案
  9. SetDll把Dll文件注入到.exe应用程序中
  10. Java中equals()和“==”区别
  11. 初识 Proxysql
  12. 嵌入式linux运行编译器,gcc编译器的使用
  13. 计算机应用画画教程,小学生信息技术之电脑绘画教学
  14. SDOI2015 寻宝游戏
  15. 解决办法之Duplicate entry ‘1‘ for key ‘PRIMARY‘
  16. java options设置_JAVA_TOOL_OPTIONS和_JAVA_OPTIONS
  17. 项目工作量估算的专家法
  18. 面试|详细分析ScheduledThreadPoolExecutor(周期性线程池)的原理
  19. ios关联启动_部落冲突电脑版与IOS设备关联教程
  20. 前端基础(二十七):面向对象基础

热门文章

  1. linux redis客户端怎么使用,linux 下安装redis并用QT写客户端程序进行连接
  2. 滨江学院 刘生 计算机网络考点知识点整理
  3. 车rc陀螺仪测试软件,利用加速度计和陀螺仪测量车辆运动
  4. android手机刷win10吗,无处不在!安卓手机能刷Win10系统了
  5. 【Python】SNMP的安装及Python的调用
  6. Oracle的取整和四舍五入函数——floor,round,ceil,trunc使用说明
  7. mysql中date与datetime类型的区别
  8. SSL证书相关技巧 -- 为什么有时候访问某些加密网站是不需要证书的?
  9. 瑞元双玻组件助力浙江多座分布式电站高效运行
  10. TypeError: 'str' object is not callable (Python)