grep命令详解与正则表达式
grep命令主要是做什么的呢 ?下面我们就来研究下。
grep命令简单来说就是“过滤”。就是把想看的数据通过grep过滤出来,把不想看的通过grep过滤掉。
它是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来,Unix的grep家族包括(egrep,fgrep,grep)。egrep和fgrep的命令跟grep有所不同,egrep是grep的扩展,支持更多的re元字符,fgrep表示就是fixed grep或fast grep,它们把所有的字母都看作单词,也就是说正则表达式中的元字符表示自身的意思,不再特殊,linux使用的GNU版本的grep本身就强大,可以通过-G,-E,-F 命令行来选项egrep和fgrep的功能。
选项:
-A # --after 表示后#行
-B # --before 表示前#行
-C # --context 表示“前后”各#行
-D --devices 设置对设备,FIFO,管道的操作,读取,跳过
-E --extended-regexp 扩展正则表达式egrep
-F --fixed-strings 一个换行符分隔的字符串的集合fgrep
-G --basic-regexp 基本正则
-H --with-filename 当搜索多个文件,显示匹配的文件名前缀
-I 不匹配二进制的东西
-L --files-without--math 匹配多个文件时,显示不匹配的文件名
-P -----perl-regexp 调用的perl正则
-R/-r --recursive 递归调用
-V --version 显示版本信息
-U --binary 使用标志高亮匹配字符串
小写选项:
-a --text 不要忽略二进制数据
-b --byte-offset 打印匹配行前面答应该行所在的块行码
-c --count 显示匹配的行数
-d --directories 目录操作,读取,递归跳过
-e --regexp 指定字符串作为查找文件内容范本样式
-f ---file 从文件中获得匹配模式
-h --no--filename 当搜索多个文件,不显示文件名的前缀
-i --ignore-case 不区分大小写
-l --files-with-matches 匹配多个文件时,显示匹配的文件名
-n --line-number 显示的内容加上行号
-q --quiet,--silent 不显示任何东西
-s --no-messages 不显示错误信息
-v --invert-match 显示不匹配的行
-w --word-regexp 匹配整个单词
-x --line-regexp 匹配整行
-y 此选项跟-i选项相同
-o --only-matching 只显示一行中匹配PATTERN的数据
-m --max-count 匹配的最大数
*注:单词由字母,数字,下划线组成
正则表达式:^ 表示以^grep开头的行
$ 表示行尾锚定,用于模式的最右侧
. 表示任意单个字符
* 匹配前面的字符任意次
.* 任意长度字符
[] 匹配指定的范围内的内容
[^] 匹配不在范围的内容
\(..\) 标记匹配字符,如\(love\) ,love被标记为1
\< 锚定单词的开始,即词首锚定,用于单词模式的开始
\> 锚定单词的词尾,即词尾锚定,用于单词模式的结束,锁定单词的结束
\{n\} 匹配前面的字符n次
\{,n\} 匹配前面的字符至多n次, <=n
\{m,n\} 匹配前面的字符至少m次,最多n次
\{n,\} 匹配前面的字符至少n次, 最多无限次
\+ 匹配前面的字符出现最少1次, 即:肯定有且>=1次
\? 匹配前面的字符出现0次或1次,即:可有可无
^$ 空行
^[[:space:]]*$ 空白行
^PATTERN$ 用于模式匹配整行
\<PATTERN\> 匹配整个单词
\| 或者
() 将多个字符捆绑在一起,当作一个整体处理
后向引用:\(string\string2\)\)
1\:string\(string2\)
2\:string2
grep命令详解与正则表达式的更多相关文章
- linux grep命令详解
linux grep命令详解 简介 grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来 ...
- grep 命令详解
[root@www ~]# grep [-acinv] [--color=auto] '搜寻字符串' filename 选项与参数: -a :将 binary 文件以 text 文件的方式搜寻数据 - ...
- Linux之grep命令详解
简介 grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它 ...
- Ubuntu 14.10 下grep命令详解
简介 grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它 ...
- Linux的grep命令详解
简介 grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它 ...
- Linux Shell脚本入门--grep命令详解
grep简介<摘自鸟哥,并加以整理.> grep (global search regular expression(RE) and print out the line,全面搜索正则表达 ...
- linux grep命令详解(转)
简介 grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它 ...
- 【转】linux grep命令详解
简介 grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它 ...
- Linux grep 命令详解
简介grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能 ...
随机推荐
- JavaScript 获取html元素
1.通过ID获取: document.getElementById("idname"); 2.通过class.tagname获取: var wcyclass = document. ...
- 鸿蒙内核源码分析(中断概念篇) | 海公公的日常工作 | 百篇博客分析OpenHarmony源码 | v43.02
百篇博客系列篇.本篇为: v43.xx 鸿蒙内核源码分析(中断概念篇) | 海公公的日常工作 | 51.c.h .o 硬件架构相关篇为: v22.xx 鸿蒙内核源码分析(汇编基础篇) | CPU在哪里 ...
- P5363-[SDOI2019]移动金币【阶梯博弈,dp,组合数学】
正题 题目链接:https://www.luogu.com.cn/problem/P5363 题目大意 \(1\times n\)的网格上有\(m\)个硬币,两个人轮流向前移动一个硬币但是不能超过前一 ...
- LR Socket接收超时TPS上不去解决方法
在一次做项目中,由于Socket协议接收的报文会有不定长度,基本每次都会有变化,在data.ws 接收buf1有固定长度,这是在接收的实时报文会有长度不一致的问题.这时LR默认会去与接收的报文的长度及 ...
- .NET 5 WPF 调用OCX 经验分享
在.Net 5.0 WPF中调用OCX步骤如下: 1,用工具先把ocx转换成AxInterop.EloamViewLib.dll和Interop.EloamViewLib.dll.(这里是我用到的oc ...
- 实验1:SDN拓扑实践
作业链接:实验1:SDN拓扑实践 一.实验目的 能够使用源码安装Mininet: 能够使用Mininet的可视化工具生成拓扑: 能够使用Mininet的命令行生成特定拓扑: 能够使用Mininet交互 ...
- Apache Struts2 S2-013远程代码执行漏洞复现
墨者学院开的靶场 进入环境 Struts2-013好家伙,框架直接写脸上,怕人看不出来= = 看了看源码什么的啥都没发现= = 去了解了一下这个漏洞,爬回来继续做 漏洞原理 struts2的标签中&l ...
- 2021record
2021-10-14 P2577 [ZJOI2004]午餐 2021-10-13 CF815C Karen and Supermarket(小小紫题,可笑可笑) P6748 『MdOI R3』Fall ...
- redis在微服务领域的贡献
本文已收录 https://github.com/lkxiaolou/lkxiaolou 欢迎star. 前言 说到redis,可能大家的脑海中蹦出的关键词是:NoSQL.KV.高性能.缓存等.但今天 ...
- 使用 PyTorch Lightning 将深度学习管道速度提高 10 倍
前言 本文介绍了如何使用 PyTorch Lightning 构建高效且快速的深度学习管道,主要包括有为什么优化深度学习管道很重要.使用 PyTorch Lightning 加快实验周期的六种 ...