返回"invalid command code"的 Sed 命令



我想插入这个文本…

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

…在第5行使用sed.

这是我到目前为止的命令

translated="This email address has not been activated yet.";
sed -i '' -e '5i'$'n''"error.emailNotActivated":'""$translated"" local.strings;

我不幸地不断得到错误消息"无效的命令代码T"。似乎sed将冒号解释为命令的一部分。有什么建议我可以避免这种情况吗?

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

你为什么要和sed争这个?这在awk:

中是微不足道的
awk -v line='"error.emailNotActivated":"'"$translated"'"' '
NR==5{print line} {print}
' file

或:

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

你在找这样的东西吗?

$ 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

最新更新