正则表达式与sed

目录

前言

正则表达式

正则表达式组成

普通字符

元字符

grep命令

基础正则表达式

特殊字符

扩展正则表达式

文本处理器

 sed 工具

 命令选项

总结


前言

正则表达式对于我们的工作是不可或缺的,他本质也是循环,是将变动值反复的以一种规范的形式进行输入的方式。

正则表达式

正则表达式,又称正规表达式、常规表达式
使用字符串来描述、匹配一系列符合某个规则的字符串

正则表达式组成

普通字符

大小写字母、数字、标点符号及一些其他符号

元字符

在正则表达式中具有特殊意义的专用字符

grep命令

-a :将binary文件以text文件的方式搜寻数据
-c : 计算找到'搜寻字符串·的次数
-i :忽略大小写的不同,所以大小写视为相同
-n :顺便输出行号
-v :反向选择,亦即显示出没有'搜寻字符串′内容的那一行!
--color=auto :可以将找到的关键词部分加上颜色的显示喔!

基础正则表达式

特殊字符

\:转义符,将特殊字符进行转义,忽略其特殊意义a\.b匹配a.b,但不能匹配ajb,.被转义为特殊意义

^:匹配行首,^则是匹配字符串的开始,^tux匹配以tux开头的行

$:匹配行尾,$则是匹配字符串的结尾tux$匹配以tux结尾的行

.:匹配除换行符\n之外的任意单个字符,awk则中可以ab.匹配abc或bad,不可匹配abcd或abde,只能匹配单字符..

[list]:匹配list列表中的一个字符例:go[ola]d,[abc]、[a-z]、[a-z0-9]

[^list]:匹配任意不在list列表中的一个字符例:[^a-z]、[^0-9]、[^A-Z0-9]

*:匹配前面子表达式0次或者多次例: goo*d、go.*d

\{n\} :匹配前面的子表达式n次,例:go\{2\}d、'[0-9]\{2\ } '匹配两位数字

\{n,\}:匹配前面的子表达式不少于n次,例: go\{2,\}d、'[0-9]\{2,\}'匹配两位及两位以上数字

\{n,m\} ﹔匹配前面的子表达式n到m次,例: go\{2,3\)d、' [0-9]\{2,3\} '匹配两位到三位数字

注:egrep、awk使用{n}、{n, }、{n,m}匹配时"[}"前不用加"\”
egrep -E -n 'wo{2}d' test.txt
egrep -E -n 'wo {2,3}d' test.txt

定位符
^匹配输入字符串开始的位置
$匹配输入字符串结尾的位置

非打印字符
\n 匹配一个换行符
\r 匹配一个回车符
\t 匹配一个制表符

扩展正则表达式

是对基础正则表达式的扩充深化扩展

+:匹配前面子表达式1次以上
例: go+d,将匹配至少一个o

?:匹配前面子表达式0次或者1次
例: go?d,将匹配gd或god

():将括号中的字符串作为一个整体
例:(xyz)+,将匹配xyz整体1次以上,如xyzxyz

|:以或的方式匹配字条串  
例1: good|food,将匹配good或者food
例2: g(oo|la)d,将匹配good或者glad


文本处理器

 sed 工具

sed [选项] '操作' 参数

 命令选项

-e 或--expression=:表示用指定命令或者脚本来处理输入的文本文件。
-f 或--file=:表示用指定的脚本文件来处理输入的文本文件。
-h 或--help:显示帮助。
-n、--quiet 或 silent:表示仅显示处理后的结果。
-i:直接编辑文本文件

“操作”用于指定对文件操作的动作行为,常见的操作包括以下几种。
a:增加,在当前行下面增加一行指定内容。
c:替换,将选定行替换为指定内容。
d:删除,删除选定的行。
i:插入,在选定行上面插入一行指定内容。
p:打印,如果同时指定行,表示打印指定行;如果不指定行,则表示打印所有内容;如果有非打印字符,则以 ASCII 码输出。其通常与“-n”选项一起使用。
s:替换,替换指定字符。
y:字符转换。

总结

sed是正则表达式的工具,正则表达式的存在依赖于其中各种各样的命令。可以帮助我们的脚本动态的完成各钟任务

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值