当前位置: 首页 > news >正文

Shell 编程-Shell三剑客 Grep 学习

Shell 编程-Shell三剑客 Grep

今天给伙伴们分享一下Shell 编程-Shell三剑客Grep,希望看了有所收获。

我是公众号「想吃西红柿」「云原生运维实战派」作者,对云原生运维感兴趣,也保持时刻学习,后续会分享工作中用到的运维技术,在运维的路上得到支持和共同进步!

如果伙伴们看了文档觉得有用,欢迎大家关注我的公众号,获取相关文档。爱运维,爱生活。

一、Grep 介绍

  • grep命令是Globally search a Regular Expression and Print的缩写,表示进行全局的正则匹配并进行打印。

  • grep 系列是 Linux 中使用频率最高的文本查找命令。主要功能在一个或者多个文件中查找特定模式的字符串。如果该行有匹配的字符串,则输出整个行的内容。如果没有匹配的内容,则不输出任何内容。grep命令不改动源文件。

  • Linux的grep家族包括grep、egrep、fgrep、rgrep。grep 可以通过 -G、-E、-F 命令行选项来使用 egrep 和 fgrep 的功能。

  • grep: 在文件中全局查找指定的正则表达式,并打印所有包含该表达式的行 grep -E == egrep

  • egrep: 扩展的egrep,支持更多的正则表达式元字符

  • fgrep: 固定grep(fixed grep),有时也被称作快速(fast grep),它按字面解释所有的字符,只进行字符的匹配,不支持正则表达式

二、Grep 命令格式

grep [选项] PATTERN filename filename ...
  • 在每个 FILE 或是标准输入中查找 PATTERN。默认的 PATTERN 是一个基本正则表达式(缩写为 BRE)。
 [root@edenluo.com ~]# grep -i 'hello world' menu.h main.c

三、Grep 命令选项

短参数长参数参数功能
-B–before-context=NUM打印以文本起始的NUM 行
-A–after-context=NUM打印以文本结尾的NUM 行
-C–context=NUM打印输出文本NUM 行
-NUM等同 --context=NUM
–color[=WHEN] --colour[=WHEN]高亮颜色突出显示搜索的字符串。值’always’, ‘never’, or ‘auto’。
-U–binary将文件作为二进制文件处理。仅有MS-DOS和MS-Windows支持该选项
-u–unix-byte-offsets报告UNIX风格的字节偏移。这个选项仅在同时使用-b选项的情况下才有效;仅有MS-DOS和MS-Windows支持该选项
与 PATTERN 正则表达式相关的选项
-E–extended-regexpPATTERN 是一个可扩展的正则表达式(缩写为 ERE)
-F–fixed-stringsPATTERN 是一组由断行符分隔的定长字符串
-G–basic-regexpPATTERN 是一个基本正则表达式(缩写为 BRE)
-P–perl-regexpPATTERN 是一个 Perl 正则表达式
-e–regexp= PATTERN用 PATTERN 来进行匹配操作
-f–file=FILE从 FILE 中取得 PATTERN
-i–ignore-case忽略大小写
-w–line-regexp强制 PATTERN 仅完全匹配字词
-x–extended-regexp强制 PATTERN 仅完全匹配一行
-z–null-data一个 0 字节的数据行,但不是空行
输出控制选项
-m–max-count=NUM在找到指定数量的匹配行后停止读文件
-b–byte-offset在显示符合样式的那一行之前,标示出该行第一个字符的编号
-n–line-number在显示符合样式的那一行之前,标示出该行的列数编号
–line-buffered刷新输出的每一行
-H–with-filename在显示符合样式的那一行之前,表示该行所属的文件名称
-h–no-filename在显示符合样式的那一行之前,不标示该行所属的文件名称
–label=LABEL打印标签作为文件名的标准输入(主要用于管道处理) 例如:cat test |grep --label=test -H 123
-o–only-matching仅输出匹配行的匹配部分
-q–quiet --silent抑制所有正常输出
–binary-files=TYPE假定二进制文件为TYPE类型文件TYPE可以为binary、text或without-match
-a–text等价于-binary-files=text
-I–binary-files=without-match等价于–binary-files=without-match
-d–directories=ACTION当grep的对象为目录时用,处理目录可以读取、递归或跳过
-D–devices=ACTION当grep的对象为处理设备、栈或套接字时必须用,处理对象可以读取或跳过
-r -R–recursive --directories=recurse相当于–directories=recurse 遍历目录
–include=FILE_PATTERN仅grep匹配的文件模式的文件
–exclude=FILE_PATTERN跳过匹配的文件模式的文件和目录进行grep匹配
–exclude-from=FILE跳过任一匹配文件模式的文件
—exclude-dir=PATTERN跳过匹配的目录文件目录
-L–files-without-match仅仅打印未匹配的文件的文件名
-l–files-with-matches仅仅打印匹配的文件的文件名
-c–count仅仅打印每个文件的匹配次数
-T–initial-tab将标签排队(标签即文件名)
-Z–null打印文件名,文件名与匹配行中间没有空字节 -z与-Z的区别之一:当一个文件有多个匹配行时-z只打印一次文件名,而-Z每匹配一次打印一次文件名
杂项
-s–no-messages不显示错误信息
-v–invert-match打印不匹配的行
  • ‘egrep’即‘grep -E’。‘fgrep’即‘grep -F’。直接使用‘egrep’或是‘fgrep’均已不可行了。
  • 不带 FILE 参数,或是 FILE 为 -,将读取标准输入。如果少于两个 FILE 参数。
  • 就要默认使用 -h 参数。如果选中任意一行,那退出状态为 0,否则为 1;如果有错误产生,且未指定 -q 参数,那退出状态为 2。

四、Grep 基本使用


http://www.mrgr.cn/news/63911.html

相关文章:

  • win11安装安卓apk原生应用,并设置网络代理
  • 来了解一下!!!——React
  • 01背包模板 | 学习总结
  • ES(ElaticSearch)详解(含工作原理、基本知识、常见问题和优化方法)
  • 选项卡设计与实现
  • AspectJ without Spring framework
  • 【ChatGPT】让ChatGPT在回答中附带参考文献与来源
  • ServletContext 对象介绍及使用
  • 【OD-支持在线评测】智能驾驶(200分)
  • 【OD-支持在线评测】字符串拼接(200分)
  • Redis常见面试题(二)
  • 华为路由器交换机如果系统丢失怎么恢复(强烈建议收藏)
  • Halcon 一维卡尺测量找点之模糊集测量法
  • 【C++】1968. 输出ascii码对应的字符
  • 【常用数据结构】开发中常用的数据结构?
  • GB/T 28046.3-2011 道路车辆 电气及电子设备的环境条件和试验 第3部分:机械负荷(2)
  • Web大学生网页作业成品——游戏战地介绍设计与实现(HTML+CSS)(4个页面)
  • HTML 基础标签——文本内容标签 <ul>、<ol>、<blockquote> 、<code> 等标签的用法详解
  • openGauss数据库-头歌实验1-1 初识openGauss
  • 【rust实战】rust博客系统4_连接数据库及查询数据
  • 华为 HCIP-Datacom H12-821 题库 (41)
  • nodejs入门教程8:nodejs EventEmitter
  • HTML 基础标签——表单标签<form>
  • 基于java+SpringBoot+Vue的学生网上选课系统设计与实现
  • 1014:与圆相关的计算
  • 使用onnxruntime-web 运行yolov8-nano推理