LINUX.ORG.RU

массив


0

0

подскажите как сложить значения в массиве на баше? Или може как-нибуть можно без массива или даже не на баше;)
#!/bin/bash
area[11]=23
area[13]=37
area[15]=23.2
anonymous

Ну лучше действительно не на bash'е, так как значения не целые, можно что то типа:

echo "scale=5; ${a[11]} + ${a[13]} + ${a[15]}" | bc

Или можно на awk...

mky ★★★★★
()
Ответ на: комментарий от dilmah

Тогда уж сразу tr'ом преобразовывать '\n' в '+'

mky ★★★★★
()
Ответ на: комментарий от Onanim

В общем вот как на перле, может можно еще проще? Мне еще нужно было учесть переводы чисел...

perl -ne 'BEGIN { %KMGT = (""=>1, "K"=>1024, "M"=>1024**2, "G"=>1024**3, "T"=>1024**4); $sum = 0; };
 /^([\d.]+)([KMGT]?)\n$/ or die; $mul = $KMGT{$2}; $sum += $1 * $mul; END { print "$sum\n"; }'

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.