以下のように、動的な行と動的な列を含むレポートを印刷する必要があります。
apple bannana pineapple
Total 47 Total 376 Total 210
a : 3 i : 10 m : 45
b : 4 j : 33 o : 67
c : 18 k : 245 n : 98
d : 22 l : 45
x : 43
すべてのリストの長さを取得し、リストの最大の長さで for ループを繰り返すことを考えました。上記の例では 5 回です。
私の疑問は、「forループ」から取得した番号を使用して、リスト内の特定のペアをどのように出力できるかです。
たとえば、最初の反復では、すべての果物の最初の項目を選択して出力する必要があります。fruit_${type}[1] のようなものかもしれません。どうすればいいのかわからない。お知らせ下さい。
#!/bin/sh
# \
exec tclsh "$0" "$@"
set fruit_apple {{a 3} {b 4} {c 18} {d 22}}
set fruit_bannana {{i 10} {j 33} {k 245} {l 45} {x 43}}
set fruit_pineapple {{m 45} {o 67} {n 98}}
set fruit {apple bannana pineapple}
puts $fruit_apple
foreach type $fruit {
puts $type
foreach pair [set fruit_${type}] {
set key [lindex $pair 0]
set value [lindex $pair 1]
puts "$key : $value"
}
}