我知道如何回声/将文本添加到文件末尾:
echo "{ "fruit":"apple" , "amount":"10" }" >> file.txt
我的问题是如何在下面的JSON文件中添加一个对象:
file -file.txt(空):
{
"fruit": [
]
}
预期结果:
{
"fruit": [
{ "fruit":"apple" , "amount":"10" } #object to add
]
}
ed
是标准文本编辑器。
#!/bin/bash
{
ed -s file.json <<EOF
/"fruit": [
a
{ "fruit":"apple" , "amount":"10" } #object to add
.
wq
EOF
} &> /dev/null
不知道为什么要为此使用bash,周围有更好的工具!
完成。
尝试这个:
$ sed -e'/"水果":/a {" frual":"苹果","量":" 10"}'file.txt
这将在"水果"之后添加一条线。如果要用修改的文本替换文件:
$ sed -i.bak -e'/"水果":/a {" frual":"苹果","量":" 10"}'file.txt
将添加该行并将文件替换为修改后的内容。旧文件将保存为备份file.txt.bak
。