grep常见使用方法总结
grep -E 'l\{2,\}' 2.txt
grep -E 'h(ell|a)o' test.txt
grep '[a-z]\{5,\}' test.txt
grep -xf a.txt b.txt //查询a与b共同存在的行
grep -vxf b.txt a.txt //查询a的行不在b文件中面的,就是a比b多出来的行 grep -v '^h' test.txt //显示非以h开发的 grep -E '^(h|y)' test.txt //-E支持扩展正则,相当于egrep grep -A 1 'hello' test.txt //除了显示匹配到的行也显示它之后的一行
grep -B 1 'hello' test.txt //除了显示匹配到的行也显示它之前的一行
grep -C 1 'hello' test.txt //除了显示匹配到的行也显示它之前和之后的一行 grep -r "hello" xx //在xx文件夹查找
grep -c //统计匹配的行数
grep -n //显示行号 grep -v '^hello' test.txt //显示不以hello开头的行
--非常聪明的写法,第一位不以h开发,第二位不以e开发。。。
grep '^[^h]\|^.[^e]\|^..[^l]\|^...[^l]\|^....[^o]' [options]主要參数:
-c:仅仅输出匹配行的计数。
-I:不区分大 小写(仅仅适用于单字符)。
-h:查询多文件时不显示文件名称。
-l:查询多文件时仅仅输出包括匹配字符的文件名称。
-n:显示匹配行及 行号。
-s:不显示不存在或无匹配文本的错误信息。
-v:显示不包括匹配文本的全部行。 命令正則表達式: . 匹配单个字符 如..X yiX能查出来
^ 匹配行首 ^d 每行第一个字符为d
$ 匹配行尾 T$ 每行最后一个字符为T
* 匹配随意字符串
\ 屏蔽特殊字符的含义
A\{2\}B 字母A出现两次
A\{2,\}B 至少出现两次
A\{2,4\}B 出现2到4次
[0-9]\{4\}xx[0-9]\{4\} 前四个是数字,中间是xx,后四个是数字 pattern正則表達式主要參数:
\: 忽略正則表達式中特殊字符的原有含义。 ^:匹配正則表達式的開始行。
$: 匹配正則表達式的结束行。 \<:从匹配正则表达 式的行開始。
锚定单词的開始。如:/\<love/匹配包括以love开头的单词的行。
\>:到匹配正則表達式的行结束。
[ ]:单个字符。如[A]即A符合要求 。 [ - ]:范围。如[A-Z],即A、B、C一直到Z都符合要求 。
。:全部的单个字符。
* :有字符,长度能够为0
[^]
匹配一个不在指定范围内的字符。如:/[^A-RT-Z]ed/匹配不包括A-R和T-Z的一个字母开头。紧跟ed的行。 +
匹配前面的子表达式一次或多次。比如,'zo+' 能匹配 "zo" 以及 "zoo",但不能匹配 "z"。+ 等价于 {1,}。 ?
匹配前面的子表达式零次或一次。比如。"do(es)?" 能够匹配 "do" 或 "does" 中的"do" 。? 等价于 {0,1}。 (?=pattern)
正向预查,在不论什么匹配 pattern 的字符串開始处匹配查找字符串。 这是一个非获取匹配。也就是说,该匹配不须要获取供以后使用。 比如。 'Windows (?=95|98|NT|2000)' 能匹配 "Windows 2000" 中的 "Windows" ,但不能匹配 "Windows 3.1" 中的 "Windows"。预查不消耗字符。也就是说。在一个匹配发生后,在最后一次匹配之后马上開始下一次匹配的搜索,而不是从包括预查的字符之后開始。 (? !pattern)
负向预查,在不论什么不匹配Negative lookahead matches the search string at any point where a string not matching pattern 的字符串開始处匹配查找字符串。 这是一个非获取匹配,也就是说,该匹配不须要获取供以后使用。比如'Windows (?!95|98|NT|2000)' 能匹配 "Windows 3.1" 中的 "Windows",但不能匹配 "Windows 2000" 中的 "Windows"。 预查不消耗字符,也就是说。在一个匹配发生后。在最后一次匹配之后马上開始下一次匹配的搜索,而不是从包括预查的字符之后開始 (?:pattern)
匹配 pattern 但不获取匹配结果,也就是说这是一个非获取匹配,不进行存储供以后使用。 这在使用 "或" 字符 (|) 来组合一个模式的各个部分是非常实用。
比如。 'industr(?:y|ies) 就是一个比 'industry|industries' 更简略的表达式 pcregrep 'Windows (?=2000|95|98|NT)' test.txt //Windows后面是2000或95..
pcregrep 'Windows (?!2000|95|98|NT)' test.txt //Windows后面非2000,95,98等
pcregrep 'Windows (?:95|98|NT|2000)' test.txt //与第一种一样 egrep:
为 grep 的扩充版本号, 改良了很多传统 grep 不能或不便的操作. 比如说:
- grep 之下不支持 ? 与 + 这两种 modifier, 但 egrep 则可.
- grep 不支持 a|b 或 (abc|xyz) 这类"或一"比对, 但 egrep 则可. fgrep:
不作 RE 处理, 表达式仅作一般字符串处理, 全部 meta 均失去功能. pcregrep:
pcregrep - a grep with Perl-compatible regular expressions , perl正则。是最流行和规范的
grep常见使用方法总结的更多相关文章
- Linux 常见安全检查方法
Linux 常见安全检查方法进行概要说明: 一.检查系统密码文件,查看文件修改日期 # ls -l /etc/passwd 二.查看 passwd 文件中有哪些特权用户 # awk -F: '$3= ...
- Oracle之常见问题诊断方法
Oracle认证:常见问题诊断方法如下: 1.TNS-12154 Error 或ORA-12154 特征:SQL*NET没有找到连接串或别名 原因1:(1)没有找到TNSNAMES.ORA文件,该文件 ...
- 100m和1000m网线的常见制作方法
100m和1000m网线的常见制作方法 100m和1000m网线的常见制作方法: 5类线(100m)的制作: a: 绿白(3).绿(6).橙白(1).蓝(4).蓝白(5).橙(2).棕白(7).棕(8 ...
- OpenStack安装部署管理中常见问题解决方法
一.网络问题-network 更多网络原理机制可以参考<OpenStack云平台的网络模式及其工作机制>. 1.1.控制节点与网络控制器区别 OpenStack平台中有两种类型的物理节点, ...
- Web Deploy发布网站及常见问题解决方法(图文)
Web Deploy发布网站及常见问题解决方法(图文) Windows2008R2+IIs7.5 +Web Deploy 3.5 Web Deploy 3.5下载安装 http://www.iis.n ...
- Python_socket常见的方法、网络编程的安全注意事项、socketsever模块、浏览器中在一段时间记录用户的登录验证机制
1.socket常见的方法 socket_常见方法_服务器端 import socket from socket import SOL_SOCKET,SO_REUSEADDR sk = socket. ...
- 学JS的心路历程 -数组常见处理方法
昨天我们有提到说for-of和forEach可以用来处理数组,但其实还有很多方法可以更快速及精简代码的达到你要的效果. 话不多说,我们赶紧来看吧! Array.prototype.map() 会回传一 ...
- Linux awk命令常见使用方法介绍
Linux awk命令常见使用方法介绍 By:授客 QQ:1033553122 awk运行方式有三种,其中常用的为命令行方式 awk [-F field_separator] '{patter ...
- 转载:SQL中Group By 的常见使用方法
SQL中Group By 的常见使用方法 转载源:http://www.cnblogs.com/wang-meng/p/5373057.html 前言今天逛java吧看到了一个面试题, 于是有了今天 ...
随机推荐
- mycat 连续分片 -> 自己定义数字范围分片
1,自己定义数字范围分片 自己定义数字范围分片,提前规划好分片字段某个范围属于哪个分片,比方说将第一个500W的数据分片在第一个节点上面.第二个500W的数据分片在第二个节点上,依次类推 2,加入配置 ...
- 具体解释Redis源代码中的部分高速排序算法(pqsort.c)
看标题.你可能会疑惑:咦?你这家伙.怎么不解说完整的快排,仅仅讲一部分快排---.- 哎,冤枉. "部分快排"是算法的名字.实际上本文相当具体呢.本文差点儿与普通快排无异.看懂了本 ...
- MapReduce编程之倒排索引
任务要求: //输入文件格式 18661629496 110 13107702446 110 1234567 120 2345678 120 987654 110 2897839274 1866162 ...
- Android应用之——自己定义控件ToggleButton
我们经常会看到非常多优秀的app上面都有一些非常美丽的控件,用户体验非常好.比方togglebutton就是一个非常好的样例,IOS系统以下那个精致的togglebutton现在在android以下也 ...
- SharePoint 创建网站地图树视图及格式枚举截图
SharePoint 创建网站地图树视图及格式枚举截图 SharePoint首页隐藏掉左側导航以后,假设要以树视图呈现站点地图也非常easy. 仅仅须要复制v4.mas ...
- Oracle在Linux下的性能优化
Oracle数据库内存参数的优化 Ø 与oracle相关的系统内核参数 Ø SGA.PGA参数设置 Oracle下磁盘存储性能优化 Ø 文件系统的选择(ext2 ...
- NEUOJ 1702 撩妹全靠魅力值 (三维偏序)
题目链接:http://acm.neu.edu.cn/hustoj/problem.php?id=1702 题目大意:就是问每个人三个属性同时不低于另外几个人....人不分先后 经典的三维偏序问题 解 ...
- NEU 1006 Intermediary
1006: Intermediary 时间限制: 1 Sec 内存限制: 128 MB提交: 261 解决: 25[提交][状态][讨论版] 题目描述 It is widely known tha ...
- centos + nodejs + egg2.x 开发微信分享功能
本文章发到掘金上,请移步阅读: https://juejin.im/post/5cf10b02e51d45778f076ccd
- Python 接口类或抽象类 反射
# 抽象类或者接口类,制定规范,统一方法名 # # 抽象类或者接口类,制定规范,统一方法名 from abc import ABCMeta,abstractmethod class Payrole(m ...