bash正则表达式
星号*:
匹配它前面的字符串或正则表达式任意次(包括0次)。
比如:*
可能匹配的字符串有:、、、 ......
句号.:
匹配除换行符之外的任意一个字符。
比如:"112.",将匹配112+至少一个字符
可能匹配的字符串有:、、112abc、 ......,但不匹配112
插入符号^:
匹配一行的开始,但有时依赖于上下文环境,可能表示否定正则表达式中一个字符串的意思。
比如:“^abc”只匹配行首为abc的字符串
美元符$:
在一个正则表达式的末尾,匹配一行的结尾。
比如:"123$",将只能匹配到行尾为123的字符行,"^$"匹配匹配一个空行。
方括号[]:
匹配方括号内指定的字母集中的一个字符。
比如:"[abc]",将匹配字符a、b、c中的任意一个字符;而"[^abc]",将匹配除abc之外的所有字符。
反斜线符号\:
转义一个特殊的字符,使这个字符得到字面意义的解释。
比如:"\$",将表示它的原意"$";"\\",表示"\"。
转义尖括号\<\>:
用于标记单词边界。尖括号必须是转义的,否则它们只是字符的字面含义。
比如:"\<the\>"匹配"the",但不匹配"them","there"。
问号?:
匹配0个或1个前面的字符,用于匹配单个字符。
比如:"ab?c",将匹配"ac"或"abc"。
加号+:
匹配一个或多个前面的字符,它和星号*很相似,单它不匹配0个字符的情况。
比如:"ab+c"将匹配"abc","abbc","abbb...c"等。
转义波形括号\{\}:
指示匹配前面正则表达式的次数。波形括号必须是转义的,否则只有字符的字面含义。
比如:"[0-9]\{5\}"将匹配5位数字。
圆括号():
包含一组正则表达式。与"|"或expr操作符一起使用。
竖线|:
正则表达式的"或"操作符匹配一组可选的字符。 比如:"a(b|c)d"将匹配"abd"或"acd"。
正则表达式比较操作符:
[weblogic@etpmalldev6 logs]$ digit=
[weblogic@etpmalldev6 logs]$ [[ $digit =~ [-] ]]
[weblogic@etpmalldev6 logs]$ echo $? [weblogic@etpmalldev6 logs]$ digit="sfsfs"
[weblogic@etpmalldev6 logs]$ [[ $digit =~ [-] ]]
[weblogic@etpmalldev6 logs]$ echo $?
实例:
测试数据:
[weblogic@etp-mall-dev7][/tpdata/shell_script]$ cat list.txt abdde
abede
bbcdefss
bbdde
the people's replublic of China
fafslk;kfak
fdoutjjlsjpwkfks
fasfsaFSAFSFSAF
FSAFSFAFFS
abdabeccde
查找包含字符串"112"且其后至少有一个字符的行:
[weblogic@etp-mall-dev7][/tpdata/shell_script]$ grep "112." list.txt
查找字符"d"和"e"之间有一个任意字符的行:
[weblogic@etp-mall-dev7][/tpdata/shell_script]$ grep "d.e" list.txt
abdde
bbdde
查找在字符"2"后有两个任意字符的行:
[weblogic@etp-mall-dev7][/tpdata/shell_script]$ grep "2.." list.txt
查找/etc/passwd文件中root账号的信息,不使用插入符号^匹配:
[weblogic@etp-mall-dev7][/tpdata/shell_script]$ grep "root" /etc/passwd
root:x:::root:/root:/bin/bash
operator:x:::operator:/root:/sbin/nologin
查找/etc/passwd文件中root账号的信息,使用插入符号^匹配:
[weblogic@etp-mall-dev7][/tpdata/shell_script]$ grep "^root" /etc/passwd
root:x:::root:/root:/bin/bash
查看有空行有多少行:
[weblogic@etp-mall-dev7][/tpdata/shell_script]$ grep "^$" list.txt | wc -l
查看所有匹配112*的行:
[weblogic@etp-mall-dev7][/tpdata/shell_script]$ grep "112*" list.txt
查看所有以数字"3"开头,"2"结尾的行:
[weblogic@etp-mall-dev7][/tpdata/shell_script]$ grep "\<3.*2\>" list.txt --color
查看文件中含有至少11个连续小写字母的行:
[weblogic@etp-mall-dev7][/tpdata/shell_script]$ grep "[a-z]\{8\}" list.txt
bbcdefss
the people's replublic of China
fdoutjjlsjpwkfks
abdabeccde
bash正则表达式的更多相关文章
- bash 正则表达式匹配,一行文本中 “包含 ABC” 并且 “不包含 XYZ”
bash 正则表达式匹配,一行文本中 “包含 ABC” 并且 “不包含 XYZ” A文件: XXXX ABC XXX4444444444444444XXXX ABC XXX XYZ6666666 ...
- BASH 正则表达式和文本处理工具
本节内容 1. 什么是正则 2. grep 3. sed 4. awk 5. 其他补充 一 什么是正则 正则就是用一些具有特殊含义的符号组合到一起(称为正则表达式)来描述字符或者字符串的方 ...
- shell脚本2——控制语句
1.顺序结构体 命令从上往下顺序执行 2.分支结构体 1)判断真假 test 表达式 或者 [ 表达式 ](必须有空格) 真返回0,假返回1 test的别名是[, 参数是] 判断表达式 记忆 解释 ! ...
- bash中正则表达式
工作中需要用bash的地方不是很多,之前只是大致了解过,每每用到都得去网上查询,遂决定以后将所用到的正则用法在这里统一收藏,便于学习. 1.echo 'inet addr:10.1.1.1 Bcas ...
- 鸟哥的Linux私房菜-第10/11/12/13章(vim程序编辑器、学习bash、正则表达式与文件格式化处理、学习Shell Scripts)
第10章 vim程序编辑器 可以将vim看做vi的进阶版本,vim可以用颜色或底线等方式来显示出一些特殊的信息. 为何要学习vim?因为: a. 所有的 Unix Like 系统都会内建 vi 文书编 ...
- Bash 通配符、正则表达式、扩展正则表达式
BASH中的通配符(wildcard) *:任意长度的任意字符. ?:任意单个字符 []:匹配范围 [^]:排除匹配范围 [:alnum:]:所有字母和数字 [:alpha:]:所有字母 [:digi ...
- Linux Bash之正则表达式
首先注意:正则表达式与通配符是完全不同的概念.通配符(wildcard)代表的是 Bash 操作接口的一个功能,而正则表达式是一种字符串处理的表示方式,一定要区分开来. 正则表达式(Regular E ...
- bash基础——grep、基本正则表达式、扩展正则表达式、fgrep
grep grep全称:Globally search a Regular Expression and Print 全局搜索正则表达式 正规表达式本质上是一种"表示方法", 只要 ...
- bash通配符 shell正则表达式
在linux中 通配符是系统命令使用,一般用来匹配文件名或者什么的用在系统命令中. 通配符是系统级别的,通配符多用在文件名上,比如查找find,ls,cp,rm 正则表达式是操作字符串,以行尾单位来匹 ...
随机推荐
- Speed-BI数据分析案例:2016年8月汽车销量排行榜
据中国汽车工业协会统计分析,2016年8月,乘用车市场表现较好,当月销量环比和同比均呈较快增长.1-8月,乘用车销量总体呈稳定增长,增幅比1-7月继续小幅提升. 8月,乘用车共销售179.5 ...
- Java学习——变量类型
Java有3类变量 局部变量 成员变量(实例变量) 类变量(静态变量) 局部变量 局部变量声明在方法.构造方法或者语句块中: 局部变量在方法.构造方法.或者语句块被执行的时候创建,当它们执行完成后,变 ...
- javascript设计模式学习之十七——程序设计原则与面向接口编程
一.编程设计原则 1)单一职责原则(SRP): 这里的职责是指“引起变化的原因”:单一职责原则体现为:一个对象(方法)只做一件事. 事实上,未必要在任何时候都一成不变地遵守原则,实际开发中,因为种种原 ...
- 用UIImageView作出动画效果
#import "AppDelegate.h" @interface AppDelegate () @end @implementation AppDelegate - (BOOL ...
- canvas 基础知识整理(二)
html部分: <canvas id="myCanvas" width="800" height="800" ></can ...
- IntelliJ IDEA 常用设置讲解2
IntelliJ IDEA 有很多人性化的设置我们必须单独拿出来讲解,也因为这些人性化的设置让我们这些 IntelliJ IDEA 死忠粉更加死心塌地使用它和分享它. 常用设置 如上图 Gif 所示, ...
- 提高神经网络的学习方式Improving the way neural networks learn
When a golf player is first learning to play golf, they usually spend most of their time developing ...
- Smarty模板
Smarty模板 是做什么用的?? 是将前端的显示和后台的逻辑进行分离,就相当于把前台显示的页面和后台要实现的某些功能的逻辑给分离出来了,分离在两个文件里,也就是说,前端只负责显示,后端只负责逻辑操作 ...
- Linux 硬盘分区
Linux系统中的重要概念,一切资源都看做是文件,包括硬件设备. 1. 基本概念 1)MBR:Master Boot Recorder,存放主引导记录,446字节的引导代码. 2)主分区表:存放主分区 ...
- Struts2.3+Spring+iBatis 初学之问题判断
小白接下来将会总结下我再学习Spring的学习过程中(ssi框架)中遇到的问题,以后会不断的进行更新. 最容易犯的问题,就是声明bean的时候,属性引用其他声明的bean的时候,name没有进行好对应 ...