2012-11-11 72 views
0

我知道如何呼應/文本添加到文件的末尾:擊:添加對象到JSON文件

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

我的問題是如何將一個對象添加到下面的JSON文件:

文件 - file.txt的(空):

{ 
"fruit": [ 

] 
} 

預期結果:

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

] 
} 
+2

不要爲此使用'bash',而是使用真正的JSON庫。 –

+0

完全同意,但我的問題是;如何使用bash將文本添加到文件的「中間」。在這種情況下,一個JSON文件。 –

+0

什麼是應該添加對象的規範?它可以用sed,awk,perl等來完成,但是你需要更詳細地定義問題。 – Barmar

回答

6

ed是標準的文本編輯器。

#!/bin/bash 

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

不知道你爲什麼要使用bash,雖然有更好的工具!

完成。

0

試試這個:

$的sed -e '/ 「果」:/ A { 「果」: 「蘋果」, 「量」: 「10」}' FILE.TXT

這將在「水果」之後添加一行。如果你想用修改後的文本替換文件:

$ sed -i.bak -e'/「fruit」:/ a {「fruit」:「apple」,「amount」:「10」 }'file.txt

將添加該行並用修改的內容替換該文件。舊文件將被保存爲備份file.txt.bak