You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用sed命令插入HTML代码时无法转义单引号的问题

解决sed命令中单引号保留问题

你的问题核心是sed脚本中嵌套单引号时的转义处理,原命令里的单引号被shell提前解析,导致写入文件时丢失。以下是两种可行的解决方法:

方法一:单引号拼接实现转义

在bash环境中,要在单引号包裹的字符串里插入单引号,可使用'\''的组合(结束当前单引号、插入单个单引号、重新开启单引号)。修改后的命令如下:

sed -i '122 i <button type="button" onclick="window.open('\''https://localhost:'$ctrl'\'','\''_blank'\'')">CTRL01</button>' SCP_PortForwarding.html

该组合会被shell解析为单个单引号,让sed能正确识别并写入目标文件。

方法二:改用双引号包裹sed脚本

如果用双引号包裹整个sed脚本,需对脚本内的双引号用\"转义,同时shell会自动解析双引号内的变量(如$ctrl)。命令如下:

sed -i "122 i <button type=\"button\" onclick=\"window.open('https://localhost:$ctrl','_blank')\">CTRL01</button>" SCP_PortForwarding.html

这种方式更直观,但需注意脚本内其他特殊字符不会被shell意外解析。

执行修改后的命令后,目标文件会生成符合预期的内容:

<button type="button" onclick="window.open('https://localhost:10941','_blank')">CTRL01</button>

内容的提问来源于stack exchange,提问作者Ranz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 22:25:32