質問編集履歴

2

修正依頼になるべく応えられるように全体的に文章を変更しました。

2021/06/23 12:29

投稿

rikku_3413
rikku_3413

スコア11

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

文章の変更を加えました

2021/06/23 12:29

投稿

rikku_3413
rikku_3413

スコア11

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
  ### 該当のソースコード