JSONファイルの更新

JSONファイルの更新

実際にjsonファイルがありますfile。最後の行を除くすべての行の末尾にコンマを追加するにはどうすればよいですか?たとえば、

{"a":1, "b":1, "c":2}
{"a":3, "b":3, "c":1}
{"a":1, "b":2, "c":3}

私が望むもの:

{"a":1, "b":1, "c":2},
{"a":3, "b":3, "c":1},
{"a":1, "b":2, "c":3}

答え1

あなたはそれを使用することができますawk

awk 'NR > 1{print line","}{line=$0;}END{print $0}' jsonfile

答え2

あなたはそれを使用することができますsed

sed '$n;s/$/,/' file
  • これは$n;、最後の行であれば続行することを意味します。
  • それ以外の場合は、,行の末尾に1つを追加します。
  • POSIX 以外のフラグを追加すると、ファイル-iはその場所で編集されます。

次の場合awk

awk 'NR>1{print p} {p=$0","}END{print}' file1
  • 行の内容を変数に保存しますp
  • この変数は最後の行を除いて印刷されます。
  • 入力が終わると、最後の行がそのまま印刷されます。

答え3

ここで実際の目標は、JSONエンティティストリームからJSON配列を作成するようです。 JSONに関連する素晴らしいツールは次のとおりです。

https://stedolan.github.io/jq/

JSONエンティティファイル(input.txtなど)をJSON配列に変換するのは非常に簡単です。

$ jq -s . input.txt

jqはSTDINでも入力を受け取ることができます。

答え4

元のファイルは実際に改行で区切られたJSON(NDJSON).

GNUツールを使用するよりもインストールする方が良いJSONNPMから。

# say the file is test.log
$ json -f test.log -g
[
  {
    "a": 1,
    "b": 1,
    "c": 2
  },
  {
    "a": 3,
    "b": 3,
    "c": 1
  },
  {
    "a": 1,
    "b": 2,
    "c": 3
  }
]

関連情報