-----------------------------------------------------------------------------------------

正则表达式与通配符:

1. 正则表达式用来在文件中匹配符合条件的字符串,正则是包含匹配。grep、awk、sed等命令可以支持正则表达式。

2. 通配符用来匹配符合条件的文件名,通配符是完全匹配。ls、find、cp这些命令不支持正则表达式,所以只能使用shell自己的通配符来进行匹配。

基础正则表达式:

*      前一个字符匹配0次或任意多次

.      匹配除了换行符外任意一个字符

^      匹配行首。^abc 即 匹配以abc开头的行

$      匹配行尾。abc$ 即 匹配以abc结尾的行

[]      匹配中括号中指定的任意一个字符,只匹配一个字符。[aeiou]匹配任意一个元音字母,[0-9][a-z]匹配小写字母和一位数字构成的两位字符

[^]     匹配除中括号内的字符以外的任意一个字符

\       转义符。用于将特殊符号的含义取消

\{n\}    匹配其前面的字符恰好出现n次。[0-9]\{2\} 匹4位数字

\{n,\}    匹配其前面的字符出现不小于n次。

\{n,m\}    匹配其前面的字符至少出现n次,最多出现m次。[a-z]\{6,8\} 匹配6到8位的小写字母

注意:

* 在通配符中表示任意字符,在正则表达式中表示前一个字符匹配0次或任意多次。

grep "a*" exp.txt    # 匹配所有内容,包括换行符(就是因为可以匹配0次)

grep "aa*" exp.txt    # 匹配至少含有一个a的行

grep "aaa*" exp.txt    # 匹配至少包含两个连续a的字符串

grep "a..e" exp.txt    # 匹配在a和e之间有两个字符的词

grep "s.*e" exp.txt    # 匹配在a和e之间有任意字符的词

grep ".*" exp.txt    # 匹配所有内容

grep "^M" exp.txt    # 匹配以M开头的行

grep "n$" exp.txt    # 匹配以n结尾的行

grep "^$" exp.txt -n    # 匹配所有空白行,-n可以显示行号

grep "^[a-z]" exp.txt    # 匹配小写字母开头的行

grep "a[bc]e" exp.txt    # 匹配abe 或 ace

grep "^[^a-z]" exp.txt    # 匹配不以小写字母开头的行

grep "[^a-zA-Z]" exp.txt    # 匹配除了字母之外的其它字符的行

grep "\.$" exp.txt    # 匹配以.结尾的行

grep "a\{2\}" exp.txt    # 匹配a连续出现两次的行

grep "[0-9]\{2,\}" exp.txt    # 匹配连续出现两个数字的行

grep "ab\{1,3\}" exp.txt    # 匹配a后有1-3个b的行

Link:http://www.cnblogs.com/farwish/p/4804012.html

@黑眼诗人 <www.farwish.com>

[Shell]正则表达式与通配符的更多相关文章

  1. Shell学习之结合正则表达式与通配符的使用(五)

    Shell学习之结合正则表达式与通配符的使用 目录 通配符 正则表达式与通配符 通配符 通配符的使用 正则表达式 正则表达式 正则表达式的使用 通配符 正则表达式与通配符 正则表达式用来在文件中匹配符 ...

  2. Linux Shell/Bash wildcard通配符、元字符、转义符使用

    说到shell通配符(wildcard),大家在使用时候会经常用到.下面是一个实例: 1   1 2 3 4 [chengmo@localhost ~/shell]$ ls a.txt  b.txt  ...

  3. 文本处理三剑客与shell正则表达式

    文本处理三剑客 提到对于文本的处理上,除了vim这个强大的编辑器之外,还有使用命令的形式去处理你要处理的文本,而不需要手动打开文本再去编辑.这样做的好处是能够以shell命令的形式将编辑和处理文本的工 ...

  4. Shell 正则表达式详解

    Shell 正则表达式 什么是正则表达式? 正则表达式在每种语言中都会有,功能就是匹配符合你预期要求的字符串. 为什么要学正则表达式? 在企业工作中,我们每天做的linux运维工作中,时刻都会面对大量 ...

  5. 『忘了再学』Shell基础 — 24、Shell正则表达式的使用

    目录 1.正则表达式说明 2.基础正则表达式 3.练习 (1)准备工作 (2)*练习 (3).练习 (4)^和$练习 (5)[]练习 (6)[^]练习 (7)\{n\}练习 (8)\{n,\}练习 ( ...

  6. shell正则表达式

    正则表达式 主要用于字符串的模式分割/匹配/查找及替换操作. 正则表达式与通配符 通配符 正则与通配符的区别: 正则匹配字符串,通配符匹配文件名. 正则--->包含匹配 通配符--->完全 ...

  7. linux shell 正则表达式(BREs,EREs,PREs)差异比较

    linux shell 正则表达式(BREs,EREs,PREs)差异比较 则表达式:在计算机科学中,是指一个用来描述或者匹配一系列符合某个句法规则的字符 串的单个字符串.在很多文本编辑器或其他工具里 ...

  8. linux 正则表达式和通配符

    linux 正则表达式和通配符 通配符用于查找文件 包含三种:  * ? [] * 代表任意个任意字符 ? 代表任意一个字符 [] 代表中括号中的一个字符 正则表达式(正则是包含匹配,只要包含就可以匹 ...

  9. linux shell 正则表达式(BREs,EREs,PREs)的比较

    原文 :   linux shell 正则表达式(BREs,EREs,PREs)差异比较 在使用 linux shell的实用程序,如awk,grep,sed等,正则表达式必不可少,他们的区别是什么 ...

随机推荐

  1. Corel Painter 15在Surface Pro 4下开启笔触压力感应

    之前一直是用Wacom的板子,所以只需要下载Wacom板子相应的驱动安装即可就能在PS和Corel Painter中开启压力感应来调节笔触出线的粗细.Surface Pro 4的笔是支持压力感应的,但 ...

  2. MySQL中四舍五入的实现

    MySQL四舍五入的实现   文章主要描述的是MySQL四舍五入的实际应用, 以及在其实际操作中的值得我们大家注意的事项与其实际应用代码的描述,以下就是文章的主要内容的详细描述,望大家在浏览之后会对其 ...

  3. PHP发送邮件的两种方式

    1.用SMTP方式发送邮件.引入phpmailer文件包,然后在文件中 <?php require_once("phpmailer/class.phpmailer.php") ...

  4. NSIS打包(一)常用概念简介

    1.NSIS简介 官网:http://sourceforge.net/projects/nsis/ 维基百科: http://zh.wikipedia.org/wiki/Nullsoft%E8%85% ...

  5. Mono addin 学习笔记 3

    典型的基于Mono addin插件框架的应用程序有以下一个部分组成: 1. 主应用程序:提供了一系列的扩展点(Extension Point)供其他应用进行扩展: 2. 扩展插件: 其部署结构图如下为 ...

  6. EventBus的一个bug??

    今天遇到了一个很奇怪的问题,activity A打开B,A和B中都注册了eventbus,都会接一个list的参数,当然两个list的参数不同,居然会报一个异常,A中List的参数会变成B的类型,错误 ...

  7. Flex 加载tiff

    gis系统常常要加载tiff,因为好多土地证书,各种文件都是扫描件,如果你是用as来写的前台,怎么加载呢,顺便说下用插件AlternaTIFF也是可以得不过浏览器加载这么多插件是不太好的. 首先TIF ...

  8. DataSet读取XML

    string file = File.ReadAllText("c://123.xml", Encoding.Default); using (DataSet ds = new D ...

  9. 第一零二天上课 PHP TP框架 引入文件路径问题和调用验证码的方式

    外部文件引入到视图模板的方式       1,将外部文件放在Public文件夹下,用load标签引入       2,在模板出书写引入代码(方法有很多,只有以下方法不容易出问题) <load h ...

  10. 利用js对象的特性,去掉数组中的重复项