开发者社区> 问答> 正文

怎么修改匹配到的模式?

在shell中,将模式中匹配到的部分进行修改,应该怎么做?
如:
[a-z]1模式中的1去掉。
例:
修改前 修改后
a1 a
a2 a2
21 21
a11 a1

展开
收起
a123456678 2016-06-20 15:56:59 1625 0
1 条回答
写回答
取消 提交回答
  • 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/

    2019-07-17 19:44:15
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载