1.shell工具sed中的正则表达式
2016-08-10 13:17
155 查看
1.
sed简介:
sed是一种流编辑器,一次处理一行内容。经过sed编辑后的文件内容并没有改变,除非进行存储输出。
基本正则
--------------------------------------------------
sed中的替换命令格式: sed 's/正则表达式/替换内容/' 文本文件
举例: sed 's/.oot/ROOT/' /etc/passwd .表示匹配除换行符以外的任意字符
. 表示任意单个字符
* 表示他的前置字符有0个或多个。
.* 表示任意字符
[] 表示匹配括号中的任意一个字符(只能是一个字符)。
[^abc] ^ 表示取反 除了abc之外的字符
- 在[]中如果不是在第一个或这最后一个 那么表示范围符
^ 每行的开头 s/^bin/root/ 开头是bin 把bin改成root
$ 每行的结尾 s/bin$/root/ 结尾是bin 把bin改成root
\ 转义符
{} 前面需要加转义字符。 \{\}
's/abc\{2,\}/A/' 匹配ab后面至少两个c的替换成A。,表示至少
's/abc\{2,3\}/A/' 匹配2到3个c
\< 表示开头 与 ^ 相同, \> 表示结尾 与 $ 相同
扩展正则
--------------------------------------------------
扩展正则 在 sed 后面要加 -r
? 前置字符出现0次或1次
+ 前置字符有一个或多个
| 或
() 用来表示分组 's/(a|b)b/root' : 把ab 或 bb 替换成root
{} 与基本正则中相同 但是不需要加转义字符 \ 。
编写正则表达式的3个步骤:
1.知道要匹配的内容以及它如何出现在文本中
2.编写一个模式来描述要匹配的内容
3.测试模式来查看它匹配的内容
模式匹配产生的结果:
hits(命中):这是我想匹配的行
misses(未命中):这是我不想匹配的行
omissions(遗漏):这是我不能匹配但是想要匹配的行
false alarms(假警报):这是我不想匹配但是却匹配了的行
----------------------------------------------
正则表达式的分类应用:
字符类
[Ww]hat
字符的范围
[0-9] [a-z]
排除字符类
[^0-9]
重复出现的字符
[15]0*
字符的跨度
* 与 \{n,m\}
电话号码的匹配
[0-9]\{3\}-[0-9]\{7,8\}
分组操作
compan(y|ies)
相关文章推荐
- 正则表达式与sed工具
- Linux下正则表达式以及几种工具:grep,sed,awk,cut,sort,uniq的简单应用
- linux(5)--补充(管道| / 重定向> / xargs)/find 与xargs结合使用/vi,grep,sed,awk(支持正则表达式的工具程序)
- Linux日常——shell工具之grep(包含正则表达式)、sed
- 正则表达式和grep、sed工具
- 文本编辑工具sed查看工具grep和正则表达式
- 三个支持正则表达式的行处理的工具: grep/sed/awk
- 正则表达式和使用正则表达式的grep,sed,awk等工具
- (管道| / 重定向> / xargs)/find 与xargs结合使用/vi,grep,sed,awk(支持正则表达式的工具程序)
- 正则表达式与grep、sed工具使用简介
- sed:linux常用工具 & 基本正则表达式
- 正则表达式笔记 sed工具
- 正则表达式及grep、sed、awk、cut、sort、uniq工具
- 常用工具之 vb转化C# 数据连接串 正则表达式查询 源码世界 脚本字典
- 各种工具之正则表达式语法比较
- 学习和使用正则表达式的好工具 the regulator
- RegexDesigner.NET 正则表达式开源工具
- 与正则表达式相关的几个小工具
- 请教sed正则表达式语句含义,请高手解释!
- Regular Expressions的一个工具:T-Regex 正则表达式验证工具