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

正则表达式与通配符:

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. a+=b 是什么意思?

    a+=b或者-=,*=等等就是相当于a=a+b;简写而已,没什么特殊含义此外还有a++/a--相当于a=a+1/a=a-1

  2. ubuntu下安装php memcache扩展

    memcached 安装sudo apt-get install memcached memcached 参数说明memcached -d -m 50 -p 11211 -u root-m 指定使用多 ...

  3. Sqlite: FOREIGN KEY constraint failed on remove的错误原因。

    sqlite外键约束中.restrict约束:如果要删除父表,则子表需空. 如果没有定义约束.会报错,需设置一个约束.

  4. yum 部署nginx

    第一步,在/etc/yum.repos.d/目录下创建一个源配置文件nginx.repo: cd /etc/yum.repos.d/ vim nginx.repo   填写如下内容:   [nginx ...

  5. ORACLE 10G 闪回建议

    Flashback Tips The following tips and restrictions apply to using flashback features. Flashback Tips ...

  6. 【Robot Framework】robot framework 学习以及selenium、appnium、requests实践(一)

    话说之前自己写了个selenium的自动化框架,然后又研究了下RF,觉得RF这种基于关键字驱动的框架更为容易上手,当然在做一些比较繁琐的验证时,似乎还不是太灵活,不如自己写几行python来的实惠(也 ...

  7. Qlikview 处理增量数据的脚本

    一般设计Qlikview报表的时候需要些2个脚本文件,一个针对Qlikview的Server job 导出数据到qvd数据文具. 另一个用户访问的Qlikview的脚本是直接展示qvd文件的数据. 事 ...

  8. PHP时间日期

    PHP常用的几个时间日期函数有:date(),mktime(),strtotime(); 一.string date ( string $format [, int $timestamp ] ) 函数 ...

  9. idea 到myeclipse

    在上一篇博客使用maven进行开发过程管理之准备篇中提到了maven的基本概念.IT男罗书全觉得概念我是懂了,但是那些东西似乎离我很远啊.先开发再说吧, 于是IT男罗书全就在svn上取了源代码,并开始 ...

  10. Corba概念(GIOP、IIOP、IOR、ORB、IDL)

    CORBA公用对象请求代理(调度)程序体系结构(Common Object Request Broker Architecture),缩写为 CORBA,是对象管理组织(Object Manageme ...