我正在尝试更换线路
"['Used', 170], <c\!--Ma_P_ST1_vCPU_Used-->"
和
"['Used', 555], <c\!--Ma_P_ST1_vCPU_Used-->"
在 html 文件中。
这就是我尝试过的。
sed "s/['Used', 170], <\!--Ma_P_ST1_vCPU_Used-->/['Used', 170], <\!--Ma_P_ST1_vCPU_Used-->/" Code_edit.html
尝试了多重屏蔽。没有帮助。
答案1
其中sed
有一些具有特殊含义的字符,需要用引号引起来。
关于这句话:
['Used', 170], <\!--Ma_P_ST1_vCPU_Used-->
您需要引用[
,]
和\
:
\['Used', 170\], <\\\!--Ma_P_ST1_vCPU_Used-->
然后,要捕获数字周围的文本,请添加捕获括号:
\(\['Used', \)170\(\], <\\\!--Ma_P_ST1_vCPU_Used-->\)
并将其转换170
为[0-9]*
(数字列表)。完成此操作后,sed 命令变为:
sed "s/\(\['Used', \)[0-9]*\(\], <\\\!--Ma_P_ST1_vCPU_Used-->\)/\1777\2/" <file
和\1
使用\2
每个括号中捕获的字符串。
答案2
这有帮助吗?
sed '/!--Ma_P_ST1_vCPU_Used-->/ s/170/555/' file
"['Used', 555], <c\!--Ma_P_ST1_vCPU_Used-->"
搜索正确的行,然后将 170 替换为 555。