扫码关注官方订阅号
在shell中,将模式中匹配到的部分进行修改,应该怎么做? 如: [a-z]1模式中的1去掉。 例: 修改前 修改后 a1 a a2 a2 21 21 a11 a1
$ 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表示匹配到的第一个括号里的内容 以此类推
s/regexp/replacement/
regexp
replacement
[a-z]1
([a-z])1
\0
\1
由于是shell命令,需要对()括号进行转义, 再加两个反斜杠\
()
\
就得到结果
sed 's/\([a-z]\)1/\1/'
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
shell
解释
sed命令中 语法
s/regexp/replacement/
表示 匹配到regexp
则 替换为replacement
正则表达式为
[a-z]1
加括号表示捕获这个括号里的内容
([a-z])1
在替换的时候可以用
\0
表示整个匹配到的串,\1
表示匹配到的第一个括号里的内容 以此类推由于是shell命令,需要对
()
括号进行转义, 再加两个反斜杠\
就得到结果