我正在尝试将此用作使用 sed 向 OSX 中的文件添加行的入门指南。 https://stackoverflow.com/questions/25631989/sed-insert-line-command-osx
sed -i '.json' '2i\
this is a test place
' dummy.txt
以上工作。但我需要进行扩展,所以我从简单的事情开始,只需用双引号替换
sed -i '.json' "2i\
this is a test place
" dummy.txt
为什么我会得到command i expects \ followed by text
?或者如何在 Mac 上使用双引号将文本添加到特定行?
您需要转义反斜杠,
sed
以便解析它并转义您试图转义的文字换行符,sed
而不是 shell。使用强引号,一切都按字面意思传递,所以
sed
看到<2> <i> <literal linefeed>
使用弱引号,shell 在解析字符串时首先得到了 dib,因此
sed
看到<2> <i> <linefeed>
,这是一个语法错误。