sedは中括弧が最後に発生する前に改行を追加しますか?

sedは中括弧が最後に発生する前に改行を追加しますか?

最後の中かっこの前に新しい行を挿入したいです。私のテキストファイルは次のとおりです

 "accounts": {
    "0x0000000000000000000000000000000000000008": { "builtin": { "name": "alt_bn128_pairing", "activate_at": "0x0", "pricing": { "alt_bn128_pairing": { "base": 100000, "pair": 80000 } } } },
    "0x00Ea169ce7e0992960D3BdE6F5D539C955316432": { "balance": "1606938044258990275541962092341162602522202993782792835301376" }
 }

だから私がしたいのは、accountsedスクリプトを介して新しいものを追加することです。

新しいアカウントは、次の変数を使用して指定されます。

"$ACCOUNT_ADDR": { "balance": "1606938044258990275541962092341162602522202993782792835301376" }

ベストアンサー1

sed操作に誤ったツールです。正しいツールの1つですjq

% 猫 wibble.json
{
「アカウント」:{
    "0x000000000000000000000000000000000000008":{"buildin":{"name":"alt_bn128_pairing", "active_at":"0x0", "価格":{"alt_bn12_0 000 0} } } },
    "0x00Ea169ce7e0992960D3BdE6F5D539C955316432": {"バランス": "1606938044258990275541962092341162602522202933"
}
}
%ACCOUNT_ADDR="0xdeadbeeffeefdface0badd00dcacad0d0eeeeeeee"
%jq'."Account"."'"${ACCOUNT_ADDR}"'"."Balance"="42"' wibble.json
{
  「アカウント」:{
    "0x000000000000000000000000000000000000000008": {
      「組み込み」:{
        "名前": "alt_bn128_pairing",
        "activate_at": "0x0",
        「価格」:{
          "alt_bn128_pairing": {
            「基本」:100000、
            「右」:80000
          }
        }
      }
    },
    "0x00Ea169ce7e0992960D3BdE6F5D539C955316432":{
      "バランス": "1606938044258990275541962092341162602522202993782792835301376"
    },
    "0xdeadbeeffeefdface0badd00dcacad0d0eeeeeeee": {
      「バランス」:「42」
    }
  }
}
%

また、囲むオブジェクトなしでキーと値のペアがあるという事実も発見しました。 ☺

おすすめ記事