私は},{
1行に1つのオブジェクトを持ち、カンマを削除したいと思います。一方では、エディタを使用してファイルを表示できるようにしたいと思いますが、ほとんどのエディタは55MBのラインファイルが好きではありません。次のsed
コマンドを使用しましたが、長さ0のファイルを作成しました。私が望む結果をどのように取得できますか?
cat INPUT | sed -n 's/},{"Foo"/}\n{"Foo"/g' > OUTPUT
答え1
sed 記号は-n
静かさを意味します。これにより、自動行印刷が無効になり、コマンドを使用して明示的に行を印刷する必要がありますp
。
次のようにまたはなしでコマンドを使用します-n
。p
sed 's/},{"Foo"/}\n{"Foo"/g' file >output
または:
sed -n 's/},{"Foo"/}\n{"Foo"/gp' file >output
答え2
オブジェクトがコンマで区切られているので、配列にあるとします。
配列にあり、その配列が次の最上位配列である場合
[{"Foo":"first"},{"Foo":"second"},{"Foo":"third"}]
...それからあなたは利用できますJSONプロセッサjq
外部配列を次のように別々のオブジェクトセットに展開します。
jq -c '.[]' file
前の例の入力に基づいて、次の一連の JSON オブジェクトが生成されます。
{"Foo":"first"}
{"Foo":"second"}
{"Foo":"third"}
これは文書の構造を変更するので、次のようなものを使用できます。jtc
jq
基本的に同様にドキュメントを見やすく印刷できますが、各構造の最低レベルをコンパクトな形式でレンダリングする別のJSONプロセッサです。
$ jtc -tc file
[
{ "Foo": "first" },
{ "Foo": "second" },
{ "Foo": "third" }
]
主にこの文書を視覚的に閲覧したいと思うので、次にも興味があります。jless
便利、これは「JSONブラウザ」です。文書の構造と(対話的に)縮小可能なサブ構造が表示されます。
▽ [{…}, {…}, {…}]
▽ [0]: {Foo: "first"}
Foo: "first"
▽ [1]: {Foo: "second"}
Foo: "second"
▽ [2]: {Foo: "third"}
Foo: "third"