我知道如何在文件末尾回显/添加文本:
echo "{ "fruit":"apple" , "amount":"10" }" >> file.txt
我的问题是如何将对象添加到下面的 json 文件中:
文件 - 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 '/"fruit":/a{ "fruit":"apple" , "amount":"10" }' file.txt
这将在“fruit”之后添加一行。如果你想用修改后的文本替换文件:
$ sed -i.bak -e '/"fruit":/a{ "fruit":"apple" , "amount":"10" }' file.txt
将添加该行并将文件替换为修改后的内容。旧文件将保存为备份file.txt.bak
。