Tools
Alle Heise-Foren > heise online > Software > Tools > Re: Dateinamen in Schleifen -…
Ansicht umschalten
Avatar von Luc Mareau
  • Luc Mareau

mehr als 1000 Beiträge seit 25.09.2006

Re: Dateinamen in Schleifen --> Korrekte Reihenfolge!

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).

Bewerten
- +
Ansicht umschalten