搜索
linux - 怎么修改匹配到的模式?
巴扎黑
巴扎黑 2017-04-17 12:03:35
[Linux讨论组]

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

巴扎黑
巴扎黑

全部回复(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/'
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号