回答編集履歴

2

追記: 順序を保持するように改良

2020/06/16 06:44

投稿

TaichiYanagiya
TaichiYanagiya

スコア12146

test CHANGED
@@ -35,3 +35,47 @@
35
35
  done
36
36
 
37
37
  ```
38
+
39
+ ---
40
+
41
+ **(2020/06/16 15:44) 追記**
42
+
43
+ 順序を保持するように改良。
44
+
45
+
46
+
47
+ ```bash
48
+
49
+ declare -A names
50
+
51
+ declare -a id_order
52
+
53
+ while IFS=, read id name ; do
54
+
55
+ [ "$id" = "id" ] && continue
56
+
57
+ if [ "${names[$id]}" = "" ] ; then
58
+
59
+ names[$id]="$name"
60
+
61
+ id_order+=($id)
62
+
63
+ else
64
+
65
+ names[$id]="${names[$id]},$name"
66
+
67
+ fi
68
+
69
+ done < CSVFILE
70
+
71
+
72
+
73
+ for id in ${id_order[*]} ; do
74
+
75
+ echo "\"id\":$id"
76
+
77
+ echo "\"names\":[${names[$id]}]"
78
+
79
+ done
80
+
81
+ ```

1

誤字修正

2020/06/16 06:44

投稿

TaichiYanagiya
TaichiYanagiya

スコア12146

test CHANGED
@@ -30,7 +30,7 @@
30
30
 
31
31
  echo "\"id\":$id"
32
32
 
33
- echo "\"names\":[${names[$id]}]"
33
+ echo "\"name\":[${names[$id]}]"
34
34
 
35
35
  done
36
36