Aureolus schrieb am 03.07.2024 23:25:
ANSATZ 2: Ginge dies hier, bzw. wären gar reguläre Ausdrücke erforderlich?
n=1; for file in $input/"*-${n}-*".gpx ; do gpsbabel -i gpx -f $file -o kml -F $output/"bla_${n}__".kml; n=$((n+1));
Ist vermutlich beides unvollständig und hirnrissig 😎
Was wäre eine sinnvolle Lösung? - Danke für Input!
Das da macht schonmal gar keinen Sinn: "for file in $input/"*-${n}-*".gpx " würde nur auf eine einzige Datei matchen, und zwar die *-1-*. Die for-Schleife würde nur über diese Datei iterieren. Ausserdem ist *-Expansion innerhalb von Anführungszeichen abgeschaltet und würde damit auf gar keine Datei mehr matchen.
Ich würde wahrscheinlich so etwas machen, nur als Ansatz und nicht getestet:
n=1;
while true ; do
file=*-$n-*
[ "$file" = "*-$n-*" ] && break # pattern matcht nicht => pattern bleibt so => keine Datei mit dieser Nummer
gpsbabal "$file" ...
n=$((n+1))
done
Das setzt voraus, dass die Nummern in den Inputfiles durchgängig sind. Ansonsten mit einer for-Schleife von bis durchgehen und Dateien skippen, wo das Pattern nicht matcht.
Das Posting wurde vom Benutzer editiert (04.07.2024 09:48).