Sed命令返回";无效的命令代码";

Sed命令返回";无效的命令代码";,sed,Sed,我正在尝试插入此文本 "error.emailNotActivated":"This email address has not been activated yet." 。。。在第5行使用sed 这是我目前的命令 translated=“此电子邮件地址尚未激活。”; sed-i'-e'5i\'$'\n''错误。emailNotActivated:“'\'$translated\'”local.strings; 不幸的是,我一直收到错误消息“无效命令代码T”。 sed似乎将冒号解释为命令的一

我正在尝试插入此文本

"error.emailNotActivated":"This email address has not been activated yet."
。。。在第5行使用sed

这是我目前的命令

translated=“此电子邮件地址尚未激活。”;
sed-i'-e'5i\'$'\n''错误。emailNotActivated:“'\'$translated\'”local.strings;
不幸的是,我一直收到错误消息“无效命令代码T”。 sed似乎将冒号解释为命令的一部分。 有什么建议可以避免这种情况吗

编辑: 似乎是更新错误(使用旧文件d'oh…)
上面的表达式和其他建议一样适用。

你在找这样的东西吗

$ seq 1 5 > file

$ cat file
1
2
3
4
5

$ translated="\"error.emailNotActivated\":\"This email address has not been activated yet.\""

$ echo $translated 
"error.emailNotActivated":"This email address has not been activated yet."

$ sed -i "5i $translated" file

$ cat file
1
2
3
4
"error.emailNotActivated":"This email address has not been activated yet."
5

你在找这样的东西吗

$ seq 1 5 > file

$ cat file
1
2
3
4
5

$ translated="\"error.emailNotActivated\":\"This email address has not been activated yet.\""

$ echo $translated 
"error.emailNotActivated":"This email address has not been activated yet."

$ sed -i "5i $translated" file

$ cat file
1
2
3
4
"error.emailNotActivated":"This email address has not been activated yet."
5

你为什么要和赛德争这个?在awk中,它是微不足道的:

awk -v line='"error.emailNotActivated":"'"$translated"'"' '
NR==5{print line} {print}
' file
或:


你为什么要和赛德争这个?在awk中,它是微不足道的:

awk -v line='"error.emailNotActivated":"'"$translated"'"' '
NR==5{print line} {print}
' file
或:


开头需要一个空格:
-e'5i
应该是
-e'5i
@fedorqui-ups-little-typo。不幸的是,我仍然得到了同样的错误:/1开始时需要一个空格:
-e'5i
应该是
-e'5i
@fedorqui-ups-little-typo。不幸的是,我仍然会遇到同样的错误:/如何在句子中插入变量?行='“error.emailNotActivated”:$translated'不客气。sed是一个很好的工具,用于在单行上进行简单替换,对于任何其他文本操作,只需使用awk,因为大多数sed语言结构在20世纪70年代中期已经过时。如何在句子中插入变量?行='“error.emailNotActivated”:$translated'不客气。sed是一个很好的工具,用于在一行上进行简单替换,对于任何其他文本操作,只需使用awk,因为大多数sed语言结构在20世纪70年代中期已经过时。