Linux 文档流处理三剑客学习第一篇 grep
2021/7/22 7:08:08
本文主要是介绍Linux 文档流处理三剑客学习第一篇 grep,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
工作中经常需要碰到Linux的日志或者命令输出,处理输出的文档流信息,作为我个人认为的三剑客之首,grep平时用的最多,但基本也就是全量匹配,或者加个i不区分大小写进行匹配。
趁最近工作有空闲,首相对grep进行一些学习。
参考链接:
https://blog.csdn.net/jinguangliu/article/details/81129426
https://www.cnblogs.com/sidianok/p/12931683.html
简介:
grep(global search regular expression(RE) and print out the line)
全面搜索正则表达式并将其打印输出
通过grep--help输出可以看到非常多的选项,我还是参考网上的资料,先走一遍流水。
[root@www ~]# grep [-acinv] [--color=auto] '搜寻字符串' filename 选项与参数: -a :将 binary 文件以 text 文件的方式搜寻数据 -c :计算找到 '搜寻字符串' 的次数 -i :忽略大小写的不同,所以大小写视为相同 -n :顺便输出行号 -v :反向选择,亦即显示出没有 '搜寻字符串' 内容的那一行! --color=auto :可以将找到的关键词部分加上颜色的显示喔!
平时用的比较多的是-i 个人感觉比较有用的有-v -n
找到一个比较使用的参数 -A3 -B2
-A, --after-context=NUM 打印以文本结尾的NUM 行
-B, --before-context=NUM 打印以文本起始的NUM 行
-C, --context=NUM 打印输出文本NUM 行[前后都打印]
通过这两个参数可以打印出,匹配行信息的后几行或者前几行信息.
grep 可以直接与正则表达式配合使用,使用规则与Python语言中的正则使用差不多。规则需要用单引号包起来,特殊符号匹配需要用转移符号\进行转义
需要转移的包含但不仅限与:{,},-,\,
具体规则不在重复,提示自己需要在规则中前后添加单引号,
对于|[或]和+[1个或者]与?等扩展正则使用字符,
可以用过grep -E使用,或者在grep是用的时候,在这个符号之前+上转移字符
通过本人测试,其实通过grep -E官方的解释为:-E, --extended-regexp PATTERN 是一个可扩展的正则表达式(缩写为 ERE)
其实通过-E的选项使用正则规则更加合适,你可以在任何情况下都加上,这样grep能认识所有的正则里面的符号,使用的时候不需要在正则符号比较{-等符号之前加上\的转义符
如果需要将正则中的特殊符号当做普通字符匹配,就可以通过转移符\
(base) [sidian@VM_0_17_centos ~]$ echo '{}' |grep '{}' {} (base) [sidian@VM_0_17_centos ~]$ echo '{}' |grep -E '\{\}' {}
上面演示了匹配{}的写法
最后我对-E的使用,我认为如果用到了正则符号就上-E参数,如果没用到就不用E了
这篇关于Linux 文档流处理三剑客学习第一篇 grep的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-18git仓库有更新,jenkins 自动触发拉代码怎么配置的?-icode9专业技术文章分享
- 2024-12-18Jenkins webhook 方式怎么配置指定的分支?-icode9专业技术文章分享
- 2024-12-13Linux C++项目实战入门教程
- 2024-12-13Linux C++编程项目实战入门教程
- 2024-12-11Linux部署Scrapy教程:新手入门指南
- 2024-12-11怎么将在本地创建的 Maven 仓库迁移到 Linux 服务器上?-icode9专业技术文章分享
- 2024-12-10Linux常用命令
- 2024-12-06谁看谁服! Linux 创始人对于进程和线程的理解是…
- 2024-12-04操作系统教程:新手入门及初级技巧详解
- 2024-12-04操作系统入门:新手必学指南