[Shell]正则表达式与通配符
-----------------------------------------------------------------------------------------
正则表达式与通配符:
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]正则表达式与通配符的更多相关文章
- Shell学习之结合正则表达式与通配符的使用(五)
Shell学习之结合正则表达式与通配符的使用 目录 通配符 正则表达式与通配符 通配符 通配符的使用 正则表达式 正则表达式 正则表达式的使用 通配符 正则表达式与通配符 正则表达式用来在文件中匹配符 ...
- Linux Shell/Bash wildcard通配符、元字符、转义符使用
说到shell通配符(wildcard),大家在使用时候会经常用到.下面是一个实例: 1 1 2 3 4 [chengmo@localhost ~/shell]$ ls a.txt b.txt ...
- 文本处理三剑客与shell正则表达式
文本处理三剑客 提到对于文本的处理上,除了vim这个强大的编辑器之外,还有使用命令的形式去处理你要处理的文本,而不需要手动打开文本再去编辑.这样做的好处是能够以shell命令的形式将编辑和处理文本的工 ...
- Shell 正则表达式详解
Shell 正则表达式 什么是正则表达式? 正则表达式在每种语言中都会有,功能就是匹配符合你预期要求的字符串. 为什么要学正则表达式? 在企业工作中,我们每天做的linux运维工作中,时刻都会面对大量 ...
- 『忘了再学』Shell基础 — 24、Shell正则表达式的使用
目录 1.正则表达式说明 2.基础正则表达式 3.练习 (1)准备工作 (2)*练习 (3).练习 (4)^和$练习 (5)[]练习 (6)[^]练习 (7)\{n\}练习 (8)\{n,\}练习 ( ...
- shell正则表达式
正则表达式 主要用于字符串的模式分割/匹配/查找及替换操作. 正则表达式与通配符 通配符 正则与通配符的区别: 正则匹配字符串,通配符匹配文件名. 正则--->包含匹配 通配符--->完全 ...
- linux shell 正则表达式(BREs,EREs,PREs)差异比较
linux shell 正则表达式(BREs,EREs,PREs)差异比较 则表达式:在计算机科学中,是指一个用来描述或者匹配一系列符合某个句法规则的字符 串的单个字符串.在很多文本编辑器或其他工具里 ...
- linux 正则表达式和通配符
linux 正则表达式和通配符 通配符用于查找文件 包含三种: * ? [] * 代表任意个任意字符 ? 代表任意一个字符 [] 代表中括号中的一个字符 正则表达式(正则是包含匹配,只要包含就可以匹 ...
- linux shell 正则表达式(BREs,EREs,PREs)的比较
原文 : linux shell 正则表达式(BREs,EREs,PREs)差异比较 在使用 linux shell的实用程序,如awk,grep,sed等,正则表达式必不可少,他们的区别是什么 ...
随机推荐
- oracle数据库对象使用说明
1.创建一个分区表,并插入一些数据,同时查询出每个分区的数据. 答:创建分区表如下 2.创建一个视图,并给出一个查询语句. 3.在当前用户下创建一个同义词,用于查询scott用户下的dept表,并给出 ...
- [转载]iOS 归档操作 NSCoding
最近一个项目需要保存到本地文件,想用plist,但是发现很多内容是自定义的,于是只能自己归档接档.不难,找了一篇范文大家保存一下,方便以后学习使用. 转自:http://mobile.51cto.co ...
- PHP下的命令行执行 php -S localhost -t public
PHP 的命令行模式 以下是 PHP 二进制文件(即 php.exe 程序)提供的命令行模式的选项参数,您随时可以通过 PHP -h 命令来查询这些参数. Usage: php [option ...
- Swing列表框组件
public class JListTest extends JFrame{ private static final long serialVersionUID=1L; publ ...
- mac下删除svn账号
以mac os x为例(Unix/Linux类似), 1.打开命令行窗口,即用户的根目录(用户的home目录) $ ls -al drwxr-xr-x 6 linxyz staff 204 ...
- Oracle 收缩表大小 Oracle Shrink Table --转载
从10g开始,oracle开始提供Shrink的命令,假如我们的表空间中支持自动段空间管理 (ASSM),就可以使用这个特性缩小段,即降低HWM.这里需要强调一点,10g的这个新特性,仅对ASSM表空 ...
- Qlikview 处理增量数据的脚本
一般设计Qlikview报表的时候需要些2个脚本文件,一个针对Qlikview的Server job 导出数据到qvd数据文具. 另一个用户访问的Qlikview的脚本是直接展示qvd文件的数据. 事 ...
- mssql 动态行转列。
)) ,'张三' ,'李四' ,'王五' select * from #a a b ----------- ---- 张三 李四 王五 ( 行受影响) --行转列,步骤:''+张三+],[+王五+], ...
- Hadoop HDFS编程 API入门系列之路径过滤上传多个文件到HDFS(二)
不多说,直接上代码. 代码 package zhouls.bigdata.myWholeHadoop.HDFS.hdfs6; import java.io.IOException;import jav ...
- POJ(3468)
A Simple Problem with Integers http://poj.org/problem?id=3468 #include <stdio.h> struct node { ...