Thread Dateinamen durchsuchen
(10 answers)
Opened by gmafx at 2009-12-10 21:06
Hallo,
ich habe einen Ordner mit 37 files. Diese möchte ich eigentlich nur mittels "cat" miteinander vereinen. Allerdings muss dies in sortierter Reihenfolge passieren. Die Files in diesem Ordner heissen: cluster0_gaf.txt cluster10_gaf.txt cluster11_gaf.txt cluster12_gaf.txt cluster13_gaf.txt cluster14_gaf.txt bis cluster 37. Wenn ich die Dateinamen einlese bekomme ich sie nicht vernünftig sortiert (also logisch aufsteigend von 0-37). Deswegen dachte ich an folgende Lösung: Code: (dl
)
1 @clusters =(0..37); Ich bin absoluter Anfänger was das schriben von Skripts angeht, vergebt mir also bitte dii umständliche Art. Das Skript soll also einfach alle Dateien einlesen, die "cluster" im Namen beinhalten. Dann soll durch den den array $cluster (Zahlen von 0-37) gegangen werden und geschaut werden, wann diese Zahl in den eingelesenen Dateinamen vorkommt. Da liegt mein Problem, also in der Abfrage (REGEX-Lernkurve ist bei mir sehr langsam): die liefert lauter Mehrfachnennungen für z.B. "1" findet sie natürlich 1 cluster11_gaf.txt 1 cluster1_gaf.txt 1 cluster21_gaf.txt 1 cluster31_gaf.txt statt nur cluster1_gaf.txt! Das ganze nutze ich letztenendes, um einen Befehlsausdruck für "cat" mittels eines Systemcalls (system('cat $liste_der_dateien_in_richtiger_reihenfolge > neue.datei')) zu erzeugen. Ok, wahrscheinlich ohnehin viel zu aufwendig. Mir wäre schon geholfen, wenn ich einen Tip bekäme, wie ich die Abfrage besser gestalten könnte. Noch beser wäre natürlich ein "Einzeiler", der das Ganze etwas eleganter löst. gma |