我想在一行上添加一些文字:
sudo sed -i '5imytext 16/16' /file
现在我在文件的第5行添加了mytext 16/16
,但实际上我想在单引号之间添加文本'mytext' 16/16
(mytext
)。
我试过
sudo sed -i '5i'mytext' 16/16' /file
但它不起作用。有人能帮助我吗?
答案 0 :(得分:4)
您尝试在插入字符串中使用的单引号会干扰sed命令周围的单引号。
最简单的方法是在sed命令周围使用不同的引号:
"5i'mytext' 16/16"
通常最好在sed命令周围使用单引号,但在这种情况下会更棘手:
'5i'"'"'mytext'"'"' 16/16'
基本上,你需要以某种方式将单引号放在双引号中,在这种情况下,没有理由不引用整个命令。
正如评论中123所建议的那样,另一种方法是将你的sed命令放入脚本文件中:
5i'mytext' 16/16
然后使用-f
开关sed:
sed -f script
这避免了使用两种引号的需要。
答案 1 :(得分:0)
在这些情况下使用双引号。这是因为:
'\''
无法工作)"'\""
将有效)示例:
sudo sed -i "5i'mytext' 16/16" /file