質問編集履歴
2
修正依頼になるべく応えられるように全体的に文章を変更しました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -168,6 +168,182 @@
|
|
168
168
|
|
169
169
|
```
|
170
170
|
|
171
|
+
###変換するファイルの例
|
172
|
+
|
173
|
+
行数が非常に多いため、適宜省略して載せています。...が省略箇所です。
|
174
|
+
|
175
|
+
```
|
176
|
+
|
177
|
+
{
|
178
|
+
|
179
|
+
"devices":[
|
180
|
+
|
181
|
+
{
|
182
|
+
|
183
|
+
"name": "IntGW-01",
|
184
|
+
|
185
|
+
"modules": {
|
186
|
+
|
187
|
+
"openconfig-interfaces": {
|
188
|
+
|
189
|
+
"interfaces": {
|
190
|
+
|
191
|
+
"interface": [
|
192
|
+
|
193
|
+
{
|
194
|
+
|
195
|
+
"name": "GigabitEthernet1",
|
196
|
+
|
197
|
+
"config": {
|
198
|
+
|
199
|
+
"name": "GigabitEthernet1",
|
200
|
+
|
201
|
+
"type": "ianaift:ethernetCsmacd",
|
202
|
+
|
203
|
+
"description": "ManagementIF",
|
204
|
+
|
205
|
+
"enabled": true
|
206
|
+
|
207
|
+
},
|
208
|
+
|
209
|
+
"state": {
|
210
|
+
|
211
|
+
"name": "GigabitEthernet1",
|
212
|
+
|
213
|
+
"type": "ianaift:ethernetCsmacd",
|
214
|
+
|
215
|
+
"enabled": true,
|
216
|
+
|
217
|
+
"ifindex": 1,
|
218
|
+
|
219
|
+
"admin-status": "UP",
|
220
|
+
|
221
|
+
"oper-status": "UP",
|
222
|
+
|
223
|
+
"last-change": 1580105229000389000,
|
224
|
+
|
225
|
+
"counters": {
|
226
|
+
|
227
|
+
"in-octets": 17493436676, ...
|
228
|
+
|
229
|
+
"out-errors": 0,
|
230
|
+
|
231
|
+
"last-clear": 1580105112000091000
|
232
|
+
|
233
|
+
}
|
234
|
+
|
235
|
+
},
|
236
|
+
|
237
|
+
"subinterfaces": {
|
238
|
+
|
239
|
+
"subinterface": [
|
240
|
+
|
241
|
+
{
|
242
|
+
|
243
|
+
"index": 0,
|
244
|
+
|
245
|
+
"config": {
|
246
|
+
|
247
|
+
"index": 0,
|
248
|
+
|
249
|
+
"description": "ManagementIF",
|
250
|
+
|
251
|
+
"enabled": true
|
252
|
+
|
253
|
+
},
|
254
|
+
|
255
|
+
"state": {
|
256
|
+
|
257
|
+
"enabled": true,
|
258
|
+
|
259
|
+
"name": "GigabitEthernet1",
|
260
|
+
|
261
|
+
"ifindex": 1,
|
262
|
+
|
263
|
+
"admin-status": "UP",
|
264
|
+
|
265
|
+
"oper-status": "UP",
|
266
|
+
|
267
|
+
"last-change": 1580105229000389000,
|
268
|
+
|
269
|
+
"counters": {
|
270
|
+
|
271
|
+
"in-octets": 17493436676, ...
|
272
|
+
|
273
|
+
"out-errors": 0,
|
274
|
+
|
275
|
+
"last-clear": 1580105112000091000
|
276
|
+
|
277
|
+
}
|
278
|
+
|
279
|
+
}
|
280
|
+
|
281
|
+
}
|
282
|
+
|
283
|
+
]
|
284
|
+
|
285
|
+
}
|
286
|
+
|
287
|
+
},
|
288
|
+
|
289
|
+
{
|
290
|
+
|
291
|
+
"name": "GigabitEthernet2",
|
292
|
+
|
293
|
+
"config": {
|
294
|
+
|
295
|
+
〜上記GigabitEthernet1と同じ構成のものが8個〜
|
296
|
+
|
297
|
+
]
|
298
|
+
|
299
|
+
}
|
300
|
+
|
301
|
+
},
|
302
|
+
|
303
|
+
"ietf-interfaces": { ...
|
304
|
+
|
305
|
+
},
|
306
|
+
|
307
|
+
"Cisco-IOS-XE-interfaces-oper": { ...
|
308
|
+
|
309
|
+
},
|
310
|
+
|
311
|
+
"Cisco-IOS-XE-bgp-oper": { ...
|
312
|
+
|
313
|
+
},
|
314
|
+
|
315
|
+
"Cisco-IOS-XE-platform-software-oper": { ...
|
316
|
+
|
317
|
+
},
|
318
|
+
|
319
|
+
"Cisco-IOS-XE-memory-oper": { ...
|
320
|
+
|
321
|
+
}
|
322
|
+
|
323
|
+
}
|
324
|
+
|
325
|
+
},
|
326
|
+
|
327
|
+
{
|
328
|
+
|
329
|
+
"name": "IntGW-02",
|
330
|
+
|
331
|
+
"modules": { ...
|
332
|
+
|
333
|
+
〜以下同じ構造のものが4つ〜
|
334
|
+
|
335
|
+
}
|
336
|
+
|
337
|
+
}
|
338
|
+
|
339
|
+
],
|
340
|
+
|
341
|
+
"@log_name": "network-device-bgpnw2"
|
342
|
+
|
343
|
+
}
|
344
|
+
|
345
|
+
```
|
346
|
+
|
171
347
|
このプログラムをシェルスクリプトを用いて網羅的な処理をしています。
|
172
348
|
|
173
349
|
```sh
|
@@ -194,8 +370,48 @@
|
|
194
370
|
|
195
371
|
```
|
196
372
|
|
373
|
+
|
374
|
+
|
197
375
|
###その他
|
198
376
|
|
199
377
|
「キーを参照して一致すれば書き込み、なければ0」の処理方法が分からず苦戦しています。
|
200
378
|
|
201
379
|
拙い日本語ではありますが、教えて頂ければと思います。
|
380
|
+
|
381
|
+
|
382
|
+
|
383
|
+
###追記
|
384
|
+
|
385
|
+
編集願に「実行した時のCSVファイルと実現したいCSVファイルを載せてほしい」というものがありましたが、出力ファイルが非常に大きく、開こうとすると重すぎてまともに開けないという状況にあります。そのため実際の出力ファイルの中身は示すことができませんが、このような雰囲気の出力をしたいというものを書かせていただいております。
|
386
|
+
|
387
|
+
|
388
|
+
|
389
|
+
###実際の出力
|
390
|
+
|
391
|
+
2つのファイルを処理したとき、2つ目のJSONファイルにキーがCの要素がなかったとしています。スクリプトで処理しているため、キーが処理した回数分表示されます。
|
392
|
+
|
393
|
+
```CSV
|
394
|
+
|
395
|
+
"A","B","C","D"
|
396
|
+
|
397
|
+
1,2,3,4
|
398
|
+
|
399
|
+
"A","B","D"
|
400
|
+
|
401
|
+
5,6,7
|
402
|
+
|
403
|
+
```
|
404
|
+
|
405
|
+
###実現したい出力
|
406
|
+
|
407
|
+
```CSV
|
408
|
+
|
409
|
+
"A","B","C","D"
|
410
|
+
|
411
|
+
1,2,3,4
|
412
|
+
|
413
|
+
5,6,0,7
|
414
|
+
|
415
|
+
|
416
|
+
|
417
|
+
```
|
1
文章の変更を加えました
test
CHANGED
File without changes
|
test
CHANGED
@@ -16,8 +16,6 @@
|
|
16
16
|
|
17
17
|
|
18
18
|
|
19
|
-
拙い日本語で申し訳ありません。
|
20
|
-
|
21
19
|
|
22
20
|
|
23
21
|
### 該当のソースコード
|