正则表达式学习(一)

sed 上下文寻址用'/pattern1/,/pattern2/p'此处的p表示打印的意思,中间有逗号
sed的文本替换[address]s/exp1/exp2/flags 其中的[address]是可选的 中间没有逗号
例如:sed 's/asd/ASD/g'   其中的g是全局的意思。
在包含某个串的行里执行某种替换操作的语法格式为:
sed -n '/str1/s/str2/str3/p' file 意思为在含有str1串里把str2 替换为str3

------------------------------------------------------------------------------------------

重复模式:&
sed 's/str1/str2 str1/' file
sed 's/str1/str2 &/' file   &代替前面的源字符串。
sed '/str1/s//str2 &/' file 第一个str1代表寻址含有str1的行,后面的//
代表记忆模式代表前面扫描的str1  最后的str2 & 是把//里的内容,也就是str1
替换成str2 &  其中的&代表前面的源字符串。
以上三个句子代表一个意思。 

 

-------------------------------------------------------------------------------------------

间隔正则表达式:
ch/{m/}  ---元字符出现m次
ch/{m,n/}----元字符出现次数大于m而小于n
ch/{m,/}  -----元字符至少出现m次

 例如:
grep '[0-9]/{10/}' file 它匹配一个数字字符出现了10 次

sed -n '/^./{5,8/}w/p'   其中的.表示任意字符,/{5,8/}表示出现5到8次。

 

--------------------------------------------------------------------------------------------

带标志的正则表达式:
sed 's//([a-z]*/) */([a-z]*/)//2,/1' file 其中  /([a-z]*/)表示的是
一个组,这个组表达的意思是字母字符出现0次或多次 ,/1表示前面出现的
第一个组。

一个稍微难懂一点的命令:
sed 's~/(../)//(../)//(../)~19/3/2/1~' file
1、先来解释~此处的作用是传统sed命令中的/,s~pattern1~pattern2/ 想象成
s/pattern1/pattern2/
2、/(../)表示任意两个字符
3、/3/2/1就是把前面匹配的三个串倒过来。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值