バッチスクリプトを作成して、example1.jsonとexample2.jsonという名前の2つのjonsonsの "tags"キーの値を変更しようとしています。jsonのタグフィールドを新しい値に置換する必要があります
入力example1.json
{
"info": {
"title": "My example swagger 1",
"version": "1.0"
},
"paths": {
"/v1/resource1": {
"get": {
"description": "This is the example1",
"tags": [
"example1"
],
"consumes": [
"*/*"
]
}
},
"/v1/resource2": {
"get": {
"tags": [
"example1"
],
"consumes": [
"*/*"
]
}
}
}
}
入力
{
"info": {
"title": "My example swagger 2",
"version": "1.0"
},
"paths": {
"/v1/resource3": {
"get": {
"description": "This is the example2",
"tags": [
"example2"
],
"consumes": [
"*/*"
]
}
},
"/v1/resource4": {
"get": {
"tags": [
"example2"
],
"consumes": [
"*/*"
]
}
}
}
}
example2.json予想される出力は、同じ名前を持つ2つのjsonsですが、タグの値が変更されました。
Example1.json:
入力タグ値 - (JSONファイル名である)例1
出力タグ値 - (要件ごとなど)tags1
Example2.json
入力タグ値 - example2(jsonファイル名)
出力タグvalue-tags2(要件ごと)
出力Example1.json
{
"info": {
"title": "My example swagger 1",
"version": "1.0"
},
"paths": {
"/v1/resource1": {
"get": {
"description": "This is the example1",
"tags": [
"tag1"
],
"consumes": [
"*/*"
]
}
},
"/v1/resource2": {
"get": {
"tags": [
"tag1"
],
"consumes": [
"*/*"
]
}
}
}
}
出力リレーExample2.json
{
"info": {
"title": "My example swagger 2",
"version": "1.0"
},
"paths": {
"/v1/resource3": {
"get": {
"description": "This is the example2",
"tags": [
"tag2"
],
"consumes": [
"*/*"
]
}
},
"/v1/resource4": {
"get": {
"tags": [
"tag2"
],
"consumes": [
"*/*"
]
}
}
}
}
私は、バッチスクリプト内のコマンドの下に書きましたが、SEDが動作しないとして、それは
sed -i "s/$/ #removenewlines#/" %1
sed -i ":a;N;$!ba;s/\n//g" %1
sed -i "s/\"tags\":\(.*\) \"%oldtagvalue%\"/\"tags\":\1 \"%newtagvalue%\"/g" %1
sed -i "s/ #removenewlines#/\n/g" %1
が動作していません複数の行については、改行を#removenewlines#に変更し、すべてを1行(1行目と2行目)に移動しました。 3行目で、ワイルドカード\(.*\)
と変数%oldtagvalue%
を使用してキータグを見つけようとしていて、それを%newtagvalue%
に置き換えようとしています。 4行目で、私はjsonを書式設定しています。変数の第1のループ値が第2のループ値について
$ echo %1
$ example1.json
$ echo %oldtagvalue%
$ example1
$ echo %newtagvalue%
$ tag1
あろうために 上記のコードは、ループ内で実行
$ echo %1
$ example2.json
$ echo %oldtagvalue%
$ example2
$ echo %newtagvalue%
$ tag2
しかし、それは動作していないであろう。ご意見をお聞かせください。私もjqコマンドを使ってそれを達成しようとしましたが、うまく機能しませんでした。
"JSON"は無効です。そのテキストの塊の実際の意図された構造を理解することは不可能です。それを修正してください。 –
@ApG - 質問は非常に不明です。各タグの値(ファイル内)をどのように変更するかを指定し、期待される出力の例を挙げてください。 – peak
@JeffMercado ..私はjsonを修正しました。ご意見をお聞かせください – ApG