ERLEDIGT
NEIN
NEIN
ANTWORTEN
3
3
ZUGRIFFE
3684
3684
EMPFEHLEN
-
Hallo Liebe Shell Experten!
Ich sitze vor einer Aufgabe die ich alleine leider nicht lösen kann (so weit bin ich noch nicht mit shell)
Ich möchte ein Shell script erstellen, das in einen bestimmten Ordner die filenamen prüft und mir einen string mit den sequenzen (von-bis) erstellt.
Ist schwer zu erklären, daher versuche ich es so:
Ich habe einen Ordner in den mehrere dpx (Bilddateie) liegen z.B.:
333.0000005.dpx
333.0000006.dpx
333.0005002.dpx
333.0005003.dpx
333.1112201.dpx
333.1112202.dpx
333.1112203.dpx
jetzt möchte ich, das das shell script diesen Ordner (z.B.333) durchsucht und mir am ende folgenden String ausgibt:
0000005-0000006,0005002-0005003,1112201-1112203
also immer "von-bis","von-bis",...
habt Ihr vielleicht eine Lösung für mich?
Ich wäre euch unendlich dankbar, da dies meinen Arbeitsaufwand unglaublich verringern würde.
Schönen Gruß
Mike
-
Hi
Also ich mach das mal mit meinen sql Dateien:
Dies gibt mir alle Dateinamen mit einem Bindestrich dazwischen auf einer Linie aus.Code :1 2 3 4 5 6
mystring="" for item in `ls /home/sqldumps/*.sql` do mystring=$mystring"-"$item done echo $mystring
Nun müsstest du aber noch die Zeile: mystring=$mystring"-"$item
mit regex behanden, so dass 1. die Endung wegfällt und 2. in meinem Fall /home/sqldumps/ wegfällt.
Allerdings habe ich schon so lange nicht mehr mit Regular Expressions gearbeitet, so dass ich dir hier nicht so schnell helfen kann.
Aber mit ein bisschen googlen bekommst du das hin
Gruss und viel Erfolg
jeipack
-
Danke jeipack
jetzt muss ich nur noch herrausfinden wie ich die dateien als sequenzen anzeigen lassen kann
hat da jemand ne idee?
Übriegens ich arbeite mit OSX
-
04.06.07 07:43 #4
- Registriert seit
- Jun 2005
- Beiträge
- 8.168
Hi.
Versuch's mal so:GrußCode bash:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
res="" last="" for i in *; do num="${i%.*}"; # Endung abschneiden if [[ "$nr" == +([0-9]) ]]; then nr="${num##0}"; # führende Nullen entfernen if [[ -z "$last" ]]; then res="$num"; elif [[ $((nr - last)) > 1 ]]; then res="$res-$last,$num"; fi; last=$nr; else res="$res,$num"; fi done echo "$res"
If at first you don't succeed, try again. Then quit. No use being a damn fool about it.
Ähnliche Themen
-
Dateinamen auslesen und in Variable speichern
Von Willi123 im Forum Linux & UnixAntworten: 2Letzter Beitrag: 22.06.10, 11:10 -
Liste von Dateinamen mit Shell-Script
Von thefaxx im Forum Sonstige SprachenAntworten: 5Letzter Beitrag: 02.04.09, 08:43 -
Brauche ein VB oder Shell script Windows Herunterfahren
Von jackisback im Forum .NET Windows FormsAntworten: 4Letzter Beitrag: 19.08.07, 21:03 -
Brauche hilfe ::>Textdatei auslesen und String verändern
Von KSebi im Forum PHPAntworten: 2Letzter Beitrag: 20.08.05, 17:30 -
Ordner auslesen und Dateinamen in DB speichern
Von Eistee im Forum PHPAntworten: 6Letzter Beitrag: 23.11.03, 23:22





Zitieren
Login





