我想把以“选项时区”开始的单行配置改为单引号行:“'EST-10'”。但是当我这么做的时候
sed -i '/option timezone/c\option timezone 'EST-10'' /etc/config/system单引号丢失,结果如下所示:
head /etc/config/system
config system
option timezone EST-10当然,引号前的反斜杠没有帮助。我可以通过\c命令来实现它吗?Ps.sed来自openwrt busybox,有限,只支持e,f,i,n,r。
发布于 2015-02-17 14:04:31
试试这个:
sed -i '/option timezone/c\option timezone '\'EST-10\' /etc/config/system相邻的字符串由bash自动连接,因此关闭了第一个字符串,添加了一个单引号(需要转义),EST-10,然后是另一个转义单引号。
如果"EST-10“部分包含空格,则还需要将其放入单引号中:
sed -i '/option timezone/c\option timezone '\''EST - 10'\' /etc/config/system双引号也是一种选择,但就我个人而言,我不喜欢使用它们,因为Bash将解释大量其他字符,比如$和!,然后需要转义。
发布于 2015-02-17 14:04:41
您可以在双引号sed命令中使用单引号字符串,而不必费心地转义它们:
sed -i "/option timezone/c\option timezone 'EST-10'" /etc/config/systemhttps://stackoverflow.com/questions/28563181
复制相似问题