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,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能 ...
随机推荐
- 通过JMETER后置处理器JSON Path Extractor插件来获取响应结果
学生金币充值接口:该接口有权限验证,需要admin用户才可以做操作,需要添加cookie.cookie中key为登录的用户名,value从登录接口中获取,登陆成功之后会返回sign. 通常做法是在HT ...
- 鸿蒙内核源码分析(文件句柄篇) | 深挖应用操作文件的细节 | 百篇博客分析OpenHarmony源码 | v69.01
百篇博客系列篇.本篇为: v69.xx 鸿蒙内核源码分析(文件句柄篇) | 深挖应用操作文件的细节 | 51.c.h.o 文件系统相关篇为: v62.xx 鸿蒙内核源码分析(文件概念篇) | 为什么说 ...
- YbtOJ#532-往事之树【广义SAM,线段树合并】
正题 题目链接:https://www.ybtoj.com.cn/problem/532 题目大意 给出\(n\)个点的一个\(Trie\)树,定义\(S_x\)表示节点\(x\)代表的字符串 求$$ ...
- CF1137F-Matches Are Not a Child‘s Play【LCT】
正题 题目链接:https://www.luogu.com.cn/problem/CF1137F 题目大意 给出\(n\)个点的一棵树,第\(i\)个点权值为\(i\). 一棵树的删除序列定义为每次删 ...
- 在modal中的datetimepicker插件BUG修复
前言:因为在模态框用到datetimepicker这一日期控件,而选中日期时,会触发模态框的再次打开,导致上面表单选的值会重新加载 解决办法: 用stopPropagation() 方法阻止事件传播, ...
- Spring Cloud Gateway 雪崩了,我 TM 人傻了
本系列是 我TM人傻了 系列第六期[捂脸],往期精彩回顾: 升级到Spring 5.3.x之后,GC次数急剧增加,我TM人傻了 这个大表走索引字段查询的 SQL 怎么就成全扫描了,我TM人傻了 获取异 ...
- LaTeX Vscode 配置
安装:https://www.latexstudio.net/archives/51801.html LaTeX 安装 & 宏包升级 & 入门:https://blog.csdn.ne ...
- 通用JS9
Symbol.toStringTag 该符号作为一个属性表示"一个字符串,该字符串用于创建对象的默认字符串描述."由内置方法Object.prototype.toString()使 ...
- 洛谷3721 HNOI2017单旋(LCT+set+思维)
这题难道不是spaly裸题吗? 言归正传QWQ 一看到这个题目,其实第一反应是很懵X的 从来没有见过类似的题目啊,什么\(spaly\),单旋.QWQ很懵逼啊 不过,我们可以注意到这么一件事情,就是我 ...
- [Beta]the Agiles Scrum Meeting 8
会议时间:2020.5.22 21:00 1.每个人的工作 今天已完成的工作 成员 已完成的工作 issue yjy 帮助解决博客评分功能遇到的问题 tq 暂无 wjx 完成批量创建团队项目功能 班级 ...