[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等,正则表达式必不可少,他们的区别是什么 ...
随机推荐
- nodejs-express 报错View is not a constructor
可能是express版本问题 view修改为views – app.set('views',__dirname + '/views');
- zen coding和emmet
zen coding 改名为 emmet http://emmet.io/download/
- XE6移动开发环境搭建之IOS篇(5):解决Windows和虚拟机下Mac OSX的共享问题(有图有真相)
网上能找到的关于Delphi XE系列的移动开发环境的相关文章甚少,本文尽量以详细的图文内容.傻瓜式的表达来告诉你想要的答案. 原创作品,请尊重作者劳动成果,转载请注明出处!!! 在安装XE6 PAS ...
- inline-block和block的区别
<html> <head> <style> body,ul,li,span{padding:0px;margin:0px;} </style> < ...
- Java正则表达式详解
转自http://edu.yesky.com/edupxpt/18/2143018.shtml
- CentOS6.5下安装apache2.2和PHP 5.5.28
CentOS6.5下安装apache2.2 1. 准备程序 :httpd-2.2.27.tar.gz 下载地址:http://httpd.apache.org/download.cgi#apache2 ...
- Qlikview List控件
将纵向展示变为横向展示 方法: ListBox属性分页,“外观”分页“单列”属性不要打钩,用鼠标调整控件高度,Listbox控件会自适应现实将数据打横现实.
- cs11_c++_lab1
lab1.cpp #include "Point.hh" #include <iostream> #include <cmath> using namesp ...
- CSS盒子模型学习记录1
http://www.blueidea.com/tech/web/2007/4545.asp 代码试验: html代码: <!DOCTYPE html PUBLIC "-//W3C// ...
- Study Emgu VoteForUniqueness
Recently i was studying Emgu, but find there is a bug in the VoteForUniqueness function in class Fea ...