我想在一行上添加一些文本:
sudo sed -i '5imytext 16/16' /file
Run Code Online (Sandbox Code Playgroud)
现在,我mytext 16/16在文件的第5行添加了内容,但实际上我想添加文本'mytext' 16/16(mytext在单引号之间)。
我试过了
sudo sed -i '5i'mytext' 16/16' /file
Run Code Online (Sandbox Code Playgroud)
但这没用。有人能帮我吗?
您试图在插入字符串中使用的单引号会干扰sed命令周围的单引号。
最简单的方法是在sed命令周围使用不同的引号:
"5i'mytext' 16/16"
Run Code Online (Sandbox Code Playgroud)
通常,最好在sed命令周围使用单引号,但在这种情况下会比较棘手:
'5i'"'"'mytext'"'"' 16/16'
Run Code Online (Sandbox Code Playgroud)
基本上,您需要以某种方式将单引号放在双引号中,在这种情况下,没有理由不对整个命令加上双引号。
正如123在注释中所建议的那样,另一种方法是将sed命令放入脚本文件中:
5i'mytext' 16/16
Run Code Online (Sandbox Code Playgroud)
然后使用-f开关进行sed:
sed -f script
Run Code Online (Sandbox Code Playgroud)
这样避免了使用两种引号的需要。
| 归档时间: |
|
| 查看次数: |
8833 次 |
| 最近记录: |