0

JSONファイルのリスト内のコードの特定のセクション/行を削除するコマンドラインインターフェイスを作成しようとしています。ちなみに、jsonファイルはメインディレクトリのサブフォルダにあります

これは私が思いつくコードです -find -name "*.json" | xargs sed -i "map"しかし、私が持っていたjsonファイルのいくつかは、そのフォーマットが少し異なります

これまでのところ、リスト内に次の 2 つの形式が表示されています。

{
    "tags": {}, 
    "map": {
        "KPA": {
            "State": True, 
            "namespace": "KPA01"
        }
    }
}

また

{
    "tags": {
        "type": [
            "char"
        ], 
        "dynamic": true
    }, 
    "unitmap": {
        "KPA01": {
           "State": True, 
            "namespace": "KPA01"
        }
    }
}

基本的に、セクションを省略して、mapセクションのみを表示しようとしていtagsますが、コンマと [] / {} の存在が私にとって困難になっています。

これはコマンド ライン インターフェイスで実行できますか?

4

3 に答える 3

1

sed は、複数行の一致にはあまり適していません。

代わりにjqを使用することをお勧めします...「JSON データの sed のようなもの」です。

于 2015-01-27T05:09:46.870 に答える