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为定界往前匹配,.匹配任意字符任意长度

最新文章

  1. ubuntu 配置git公钥
  2. MySQL 事件跟踪器 , MySQL 无须重启服务 跟踪 SQL , 也无须配置日志
  3. powerdesigner的学习
  4. Magento导出订单同时导出产品信息
  5. chmod u+x ./j2sdk-1_4_2_04-linux-i586.bin的含义
  6. BZOJ 1984 月下“毛景树”
  7. android 弹出框(输入框和选择框)
  8. [51NOD1126]求递推序列的第n项(矩阵快速幂)
  9. 第二节 hibernate session介绍以及session常用方法介绍
  10. 用jQuery实现瀑布流效果学习笔记
  11. servlet第2讲(上集)----创建servlet实例(实现servlet接口)
  12. Mac上编译并运行Android5.0源码
  13. 网络小白之WAN与LAN的区别
  14. vim自动补全头注释与说明
  15. cocos3.x - lua vs2013环境搭建及项目创建示例
  16. 廖雪峰Java2面向对象编程-2数据封装-1方法重载
  17. python中将两个数组压缩成一个数组
  18. elixir mac环境
  19. vue项目下使用iview总结
  20. (LeetCode 78)SubSets

热门文章

  1. Spring代理模式(jdk动态代理模式)
  2. POJ 2559 Langest Rectangle in a Histogame
  3. 最全的防火墙(firewalld)
  4. JS页面跳转加密解密URL参数
  5. 【MobX】390- MobX 入门教程(上)
  6. 70道阿里百度高频Java面试题(框架+JVM+多线程+算法+数据库)
  7. doGet()方法和doPost()方法有什么区别?
  8. 小白学 Python 爬虫(23):解析库 pyquery 入门
  9. LImax服务器框架学习--安装、使用ant工具、生成limax相关代码
  10. C#界面设计相关设置