在shell中,将模式中匹配到的部分进行修改,应该怎么做?
如:
[a-z]1模式中的1去掉。
例:
修改前 修改后
a1 a
a2 a2
21 21
a11 a1
shell
$ echo 'a1
a2
21
a11' | sed 's/([a-z])1/1/'
a
a2
21
a1
解释
sed命令中 语法s/regexp/replacement/ 表示 匹配到 regexp 则 替换为 replacement
正则表达式为 [a-z]1
加括号表示捕获这个括号里的内容 ([a-z])1
在替换的时候可以用 0 表示整个匹配到的串, 1表示匹配到的第一个括号里的内容 以此类推
由于是shell命令,需要对()括号进行转义, 再加两个反斜杠\
就得到结果
sed 's/([a-z])1/1/
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。