shell脚本学习笔记之grep&正则表达式

原创 2016年08月12日 11:29:46

grep命令是Linux中一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。

grep的主要参数:

-c:只输出匹配行的计数。 

-I:不区分大小写(只适用于单字符)。 

-h:查询多文件时不显示文件名。 

-l:查询多文件时只输出包含匹配字符的文件名。 

-n:显示匹配行及行号。 

-s:不显示不存在或无匹配文本的错误信息。 

-v:显示不包含匹配文本的所有行。

pattern正则表达式主要参数: 

字符类:

1). 匹配任意一个字符的一次出现(字符必须要存在)

2)[ ]:匹配括号中的任意一个字符

3)-:在[ ]内,表示字符的范围

数量限定符:

1)?: 紧跟在它前面的单元匹配零次或一次

2)*:紧跟在它前面的单元匹配零次或多次

3)+:紧跟在它前面的单元匹配一次或多次

4){N}:紧跟在它前面的单元匹配N次

5){N,}:紧跟在它前面的单元至少匹配N次

6){N,M}:紧跟在它前面的单元最少匹配N次,最多匹配M次

位置限定符:

1)^:匹配行首的位置 

2)$: 匹配行尾的位置 

3)\<:匹配单词开头的位置

4)\>:匹配单词结尾的位置

5)\b:匹配单词开头或者结尾的位置

6)\B:匹配非单词开头或者结尾的位置

其它特殊字符:

1)\:转义字符,普通字符转为特殊字符,特殊字符转为普通字符

2)():将正则表达式的一部分括起来组成一个单元,可以对整个单元使用数量限定符

3)|:连接两个子表达式,表示或的关系

练习:

1.匹配到正确的手机号码


2.匹配到正确的邮箱


3.匹配到正确的IP地址


版权声明:本文为博主原创文章,未经博主允许不得转载。

shell脚本学习笔记一

又开始写学习笔记了,呵呵。。。 今年打算选择一门技术系统的学习一下。编程语言、虚拟机技术、数据库、大数据、云计算在这些种类中,我选择了shell编程。为什么选择shell呢?也没有什么具体的原因。以...
  • lpioneer
  • lpioneer
  • 2014年02月25日 17:01
  • 2130

shell脚本学习笔记 (正则表达式)

shell脚本学习笔记(正则表达式)
  • zr1076311296
  • zr1076311296
  • 2016年04月12日 20:13
  • 3320

shell脚本学习:正则表达式之sed,tr篇

在linux中,主要通过sed命令来替换文本,通过正则表达式匹配出的命令,可以用sed来灵活的替换掉,极大的节省了工作量。可以说,sed是shell脚本里替换的最主要力量,也是shell脚本里用的最多...
  • liyun422828
  • liyun422828
  • 2014年02月27日 15:35
  • 1647

正则表达式学习笔记(二)——简单的正则表达式

一、简单的正则表达式
  • u011468424
  • u011468424
  • 2016年08月10日 15:19
  • 162

正则表达式学习笔记(全)

《正则表达式必知必会》Ben Forta著---学习笔记
  • yuhk231
  • yuhk231
  • 2016年12月09日 20:26
  • 992

Linux shell脚本之 Sed 简介 正则表达式

sed是一款轻量级流编辑器,是stream editor的简写。由于sed是以行为单位进行编辑文件 , 因此也称为行编辑器。它无需直接编辑资料,能够将编辑工作自动化。sed工作方式: 由标准输入读取编...
  • doiido
  • doiido
  • 2015年02月28日 16:32
  • 2617

Zynq-Linux移植学习笔记之二-知识点

在zynq上进行Linux的移植并基于Linux进行驱动开发需要涉及到很多东西,用一张图说明要掌握哪些知识: 如上图所示,对开发驱动的人来说,既要懂软件也要懂硬件,软件上需要对操作系统结构和接...
  • jj12345jj198999
  • jj12345jj198999
  • 2017年01月18日 22:53
  • 1385

Shell脚本高级编程 二 正则表达式

在shell脚本中成功使用sed编辑器和gawk程序的关键在于熟练使用正则表达式。这能够是你,从大量数据中过滤出特定数据。 (1)什么是正则表达式 ①定义 正则表达式是我们自己定义的、Linux工...
  • u014656992
  • u014656992
  • 2017年05月18日 16:05
  • 214

qt学习笔记(七)之数据库简介

笔者最近用Qt写公司的考勤机。本来要求是要基于frameBuffer下用自己开发的easyGUI来进行上层应用开发,但是考虑到easyGUI提供的接口不是很多,就考虑用Qt来开发,顺带练练手。 废话不...
  • liuligui5200
  • liuligui5200
  • 2015年07月09日 15:59
  • 362

android学习笔记之adb无法启动

adb服务无法启动错误。
  • qq12547345
  • qq12547345
  • 2015年08月05日 11:21
  • 464
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:shell脚本学习笔记之grep&正则表达式
举报原因:
原因补充:

(最多只允许输入30个字)