Shell-Script zum umrechnen

Danke für deine Mühe:

1 00;03;49,840 00;03;51,840 ausgang0001.gif
2 00;03;51,840 00;03;55,080 ausgang0002.gif
3 00;03;55,080 00;03;59,189 ausgang0003.gif
4 00;04;02,080 00;04;03,789 ausgang0004.gif
5 00;04;11,310 00;04;13,870 ausgang0005.gif
6 00;04;15,240 00;04;16,870 ausgang0006.gif
7 00;04;34,189 00;04;38,300 ausgang0007.gif
8 00;07;11,629 00;07;15,060 ausgang0008.gif
9 00;07;15,240 00;07;17,240 ausgang0009.gif
10 00;07;17,240 00;07;18,990 ausgang0010.gif
 
So habe die Funktion nochmal verändert:

Bash:
function calc_frames
{
for pattern in $1
do
  if [[ `echo $pattern | grep ";"` ]];
  then
    temp=${pattern#*,}
    echo -n "${pattern%,*},$((${temp#0}*25/1000)) "
  else
    echo -n "$pattern "
  fi
done
echo
}

Das Problem war, dass ${pattern#*,} für die 2te Spalte in der 2ten Zeile eine 080 zurückliefert. Scheinbar behandelt die Bash bei Rechenoperationen Zahlen mit führender 0 als Oktalzahlen. Deshalb die Fehlermeldung.

Durch meine Veränderung wird eine führende 0 entfernt. Wenn hinter dem Komma also mal 008 steht, bekommst du wieder eine ähnliche Fehlermeldung.
Aber das anpassen sollte kein Problem mehr darstellen.
 
Danke!
Es wird aber kein Fall eintreten, in dem eine Zahl kleiner als 25 drinsteht (mit Ausnahme der Null, dann ist es aber egal, ob oktal oder dezimal). Ich muss es nur noch hinbekommen, dass ich bei Zahlen < 10 eine führende Null habe.

Vielen Dank.
 
Zurück