首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >理解sed命令语法和sed命令

理解sed命令语法和sed命令
EN

Stack Overflow用户
提问于 2016-01-23 18:32:00
回答 1查看 378关注 0票数 2

有人能解释一下这个sed命令在这里做什么吗?

代码语言:javascript
复制
sed 's!^M$!!;s!\-!!g;s!\.!!g;s!\(..\)!\1:!g;s!:$!!'

似乎替换/删除了一些字符..。但我想不出来..。这真的很复杂(我指的是所有的s ; / g M ^。及其他字符)

坦克斯

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-01-23 18:49:36

您可以将其分成一系列替换:

代码语言:javascript
复制
s!^M$!!
s!\-!!g
s!\.!!g
s!\(..\)!\1:!g
s!:$!!

每个模式都使用!作为分隔符,因此模式是s!match!replacement!。最后的g意味着它们中的一些是全局的,因此会发生尽可能多的事件,而不是每行只发生一次。

^与行的开头匹配,$与结束匹配,因此第一个匹配的是删除行中自己找到的任何M

接下来的两个移除找到的所有.-.在它之前需要一个斜线,这样它就只能匹配一个文字.,而不是匹配任何字符。-在它之前不需要一个斜线,但它也不会造成任何伤害。

第四种方法是在每2个字符之后添加一个:,使用捕获组和反向引用。

希望你能根据我对第一个问题的解释,弄清楚最后一个是做什么的!

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34967170

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档