我想插入这个文本…
"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