首页 > 代码库 > [sed]记录
[sed]记录
sed的括号本身没有特殊意义,如果要保留通配内容,需要转义。
echo "1) host" |sed ‘s/1) ([a-z])/$1) $1/‘
有两处有问题。
1. 首先是上面说的问题,上面的意思是要匹配 1) (b)这种字符串,而且没有变量捕获的意义,所以后面的$1不是一个变量。
2.在sed中替换前面捕获的内容使用直接保存在数字变量中,而不是使用$1 $2类似的字符。故替换部分1即代表前面第一个括号中的内容。
但1本身代表1这个数字,所以需要转义。
正确写法:
echo "1) host" |sed ‘s/1) \([a-z]\)/\1) \1/‘
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。