0

我知道如何在文件末尾回显/添加文本:

echo "{ "fruit":"apple" , "amount":"10" }" >> file.txt

我的问题是如何将对象添加到下面的 json 文件中:

文件 - file.txt(空):

{
"fruit": [

]
}

预期结果:

{
"fruit": [
{ "fruit":"apple" , "amount":"10" } #object to add

]
}
4

2 回答 2

6

ed是标准的文本编辑器。

#!/bin/bash

{
ed -s file.json <<EOF
/\"fruit\": \[
a
{ "fruit":"apple" , "amount":"10" } #object to add
.
wq
EOF
} &> /dev/null

不知道为什么要为此使用 bash,但是,周围有更好的工具!

完毕。

于 2012-11-11T18:52:52.063 回答
0

试试这个:

$ 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

于 2012-11-12T21:05:23.860 回答