我有以下命令在第1行之后将字符串变量插入文件:
serviceWorker
我在变量周围使用了双引号,因为其他类似帖子中的答案已经说过了(所以不要标记为重复的pls),但它仍然不起作用,只是插入字符串{ {1}}
文件sed '1a\"$str_builder"' certs.json > certs-new.json
看起来像:
$str_builder
certs.json
看起来像:
[
{
"url" : "www.google.com",
.
.
答案 0 :(得分:1)
在整个事物周围使用双引号并删除反斜杠。
sed "1a$str_builder" certs.json > certs-new.json
答案 1 :(得分:0)
单引号禁止变量扩展。你需要使用双引号。
sed "1a$str_builder" certs.json > certs-new.json
如果你想在外部引号内加双引号,则需要对内部引号进行转义。
sed "1a\"$str_builder\"" certs.json > certs-new.json
但是,使用jq
修改JSON数据可能会更好。它是专为JSON操作而设计的更智能的工具。
答案 2 :(得分:0)
我在我的系统中通过以下两个答案尝试了sed
命令并得到了错误sed: command garbled:
因此暂时没有sed
命令就给出了下面的解决方案。将使用sed
检查一次如何解决问题。
#first print the first line of file certs.json
head -1 certs.json > certs-new.json
#Now insert value of variable str_builder into certs-new.json as second line
echo "$str_builder" >> certs-new.json
#now insert all the lines except first line from certs.json to certs-new.json
tail +2 certs.json >> certs-new.json