grep的使用及正则表达式
1.常用选项:
-E :开启扩展(Extend)的正则表达式。
-i :忽略大小写(ignore case)。
-v :反过来(invert),只打印没有匹配的,而匹配的反而不打印。
-n :显示行号
-w :被匹配的文本只能是单词,而不能是单词中的某一部分,如文本中有liker,而我搜寻的只是like,就可以使用-w选项来避免匹配liker
-c :显示总共有多少行被匹配到了,而不是显示被匹配到的内容,注意如果同时使用-cv选项是显示有多少行没有被匹配到。
-o :只显示被模式匹配到的字符串。
--color :将匹配到的内容以颜色高亮显示。
-A n:显示匹配到的字符串所在的行及其后n行,after
-B n:显示匹配到的字符串所在的行及其前n行,before
-C n:显示匹配到的字符串所在的行及其前后各n行,context
2.常用表达式参数
\btom\b “\b"中间tom代表是一个单词
\d 表示一个数字
\d{2}-\d{8}。 这里\d后面的{2}({8})的意思是前面\d必须连续重复匹配2次(8次)。
\s 匹配任意的空白符,包括空格,制表符(Tab),换行符,中文全角空格等。
\w 匹配字母或数字或下划线或汉字等。
. 匹配除换行符以外的任意字符
\d 匹配数字
\b 匹配单词的开始或结束
^ 匹配字符串的开始 //^和$匹配的是行
$ 匹配字符串的结束
^\d{5,12}$ 填写的QQ号必须为5位到12位数字
备注:"\d" 等这些字符只有在perl{正则支持的相对完整} 中能够使用
转义):
\字符
重复):
* 重复零次或更多次
+ 重复一次或更多次
? 重复零次或一次
{n} 重复n次
{n,} 重复n次或更多次
{n,m} 重复n到m次
cat 123.txt |grep '\bno\b'
#\b 牟定词首 或者词尾,上面表示只匹配no字符,多一个都不行
cat 123.txt |grep '^root.400$'
#^牟定行首,$牟定行尾,表示匹配以root开头,以400结尾的行
echo "111222333"|grep -o 1.2
#只显示匹配到的词
cat /etc/passwd|grep -n -A 1 '^root.*'
#显示root行,及下一行,还有行号
匹配数字
echo "123abcABC"|grep -o '[0-9]'
echo "2002 1945 1644 1892 1946"|grep -P '\b(20|19)[0-9]{2}\b'
#表示以20或者19开头后面两个字符为数字,{2}的意思是前面[0-9]必须匹配到两次,至少匹配到的是4位数,但是两个\b牟定的词首和词尾所以只能的是4位数
高级用法
echo "http://www.ylc520.com/"|grep -oP '.+(?=://)'
#输出结果 http, 表示以://为定界 往前匹配,.+ 表示任意字符出现1次或者多次
echo "http://www.ylc520.com/"|grep -oP '(?<=://).+'
#输出 www.ylc520.com/ ,表示以://为定界 往后匹配,.+ 表示任意字符出现1次或者多次
echo "http://www.ylc520.com/"|grep -oP '(?<=www.).(?=.com)'
#输出结果 ylc520 表示以www. 为定界往后匹配,同时以.com为定界往前匹配,.匹配任意字符任意长度
grep的使用及正则表达式的更多相关文章
- Linux grep 命令中的正则表达式详解
在 Linux .类 Unix 系统中我该如何使用 Grep 命令的正则表达式呢? Linux 附带有 GNU grep 命令工具,它支持扩展正则表达式(extended regular expres ...
- grep命令及基本正则表达式
grep命令是Linux系统中一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来. grep可用于shell脚本,因为grep通过返回一个状态值来说明搜索的状态,如果模板搜索成功 ...
- 【Linux相识相知】文本处理工具之grep\egrep\fgrep及正则表达式
常说Linux上有文本处理的三剑客,grep.sed和awk,本文就grep做出详细的描述,并引出正则表达式. grep NAME:打印模式匹配的行 SYNOPISIS: grep [OPTIONS] ...
- Linux学习笔记之grep命令和使用正则表达式
0x00 正则表达式概述 正则表达式是描述一些字符串的模式,是由一些元字符和字符组成的字符串,而这些元字符是一些表示特殊意义的字符,即被正则表达式引擎表达的字符表示与其本意不同的一些字符. 0x01 ...
- linux grep 指定字符串的正则表达式
cat all_uuid_log | grep "[a-z0-9]\{32\}"
- 快速掌握grep命令及正则表达式
Linux系统自带了支持拓展正则表达式的 GNU 版本 grep 工具,所有的Linux发行版中均默认安装grep ,grep 命令被用来检索一台服务器或工作站上任何位置的文本信息,如何在 Linux ...
- linux正则表达式之-基础正则表达式(基于grep)
linux正则表达式: 简单的说,正则表达式就是为处理大量的字符串而定义的一套规则和方法,如:假设@代表123456,!代表abcde.通过定义的这些特殊符号的铺助,系统管理员就可以快速的过滤,替换或 ...
- Linux正则表达式grep与egrep
grep -io "http:/=[A-Z0-9]\{16\}" ./wsxf.txt >wsxf_urls.txt Linux正则表达式grep与egrep 正则表达式:它 ...
- grep&正则表达式
p.MsoNormal,li.MsoNormal,div.MsoNormal { margin: 0cm; margin-bottom: .0001pt; text-align: justify; f ...
随机推荐
- mybatis 和servlet使用MVC实现用户登录,注册,退出
普通实现: USerMapper.java: package com.bjsxt.mapper; import org.apache.ibatis.annotations.Param; import ...
- CF240E Road Repairs(最小树形图-记录路径)
A country named Berland has n cities. They are numbered with integers from 1 to n. City with index 1 ...
- BZOJ1001: [BeiJing2006]狼抓兔子(优化的dinic或转化对偶图求最短路)
1001: [BeiJing2006]狼抓兔子 Time Limit: 15 Sec Memory Limit: 162 MBSubmit: 30078 Solved: 7908[Submit][ ...
- 洛谷 SPOJ 题解 SP1 【TEST - Life, the Universe, and Everything】
给出一种主函数递归的方法(其实主函数 main() 也是可以递归的) #include <stdio.h> int main() { int a; scanf("%d" ...
- 洛谷 题解 P1287 【盒子与球】
题解:P1287 盒子与球 不了解的:stirling数(斯特林数) - 百度百科 分析如下: 设有n个不同的球,分别用b1,b2,--bn表示.从中取出一个球bn,bn的放法有以下两种: 1) bn ...
- asp.net core 拦击器制作的权限管理系统DEMO
效果图 没有登陆不会执行请求日期的方法,不管是否登陆都不允许访问请求时间方法 验证不通过是会进行转发到Home/error方法中, 代码附上: [Route("[controller]/[a ...
- iSensor App Kit 测试之 MT9V111 MT9M111 MT9D111
iSensor App Kit 可以调试测试一切常规的sensor,对于ccusb20底板,可以直接兼容官哥所有的dvp接口的摄像头,分辨率从30w到1400w均没问题. 今天又测试了三款sensor ...
- 基于STM32 HID 游戏手柄开发调试
stm32自带usb接口,非常适合做hid设备,免驱开发也很方便. 使用stm32通过正确的报告描述符配置后,插入usb,电脑正确识别如下(设备和打印机) 可以通过右键,游戏控制器设置 通过选择属性 ...
- 【CSS】323- 深度解析 CSS 中的“浮动”
对于浮动这篇文章解析的狠透彻 ~ 写在最前 习惯性去谷歌翻译看了看 float 的解释: 其中有一句这样写的: she relaxed, floating gently in the water 瞬间 ...
- Butterknife Attribute value must be constant
背景 在下面的R.id.rv_msg_remind 标红,然后鼠标附上去,显示attribute value must be contant.如下: @BindView(R.id.rv_msg_rem ...