Ergebnis 1 bis 3 von 3

Thema: Brauche Shell script Hilfe - Dateinamen auslesen und sequenzen im string speichern

  1. #1
    TP-Newbie
    Registriert seit
    Jun 2007
    Beiträge
    1

    Brauche Shell script Hilfe - Dateinamen auslesen und sequenzen im string speichern

    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

  2. #2
    TP-Moderator Avatar von Adromir
    Registriert seit
    Jun 2004
    Ort
    Hannover
    Beiträge
    4.811
    Warum liest eigentlich niemand die Forenbeschreibung *sigh*
    Je größer der Deppenfaktor, desto gigantischer das Bescheidwissergefühl
    -Dieter Nuhr

  3. #3
    TP-Senior
    Registriert seit
    Jul 2006
    Ort
    Köln
    Beiträge
    247
    Man ist ja dynamisch.

    Code:
    :~/test$ ls
    333.0000005.dpx  333.0000006.dpx
    Ausgangssituation...

    Code:
    ls | sed -e r/' '/\n/g | cut --delimiter='.' --fields=2
    0000005
    0000006
    Jetzt wird´s heikel.

    Muss ich mir was überlegen für, ansonsten ab hier weiter in PHP.

    ecit: --
    Sorry, ab hier wird´s für mich zu einem zu großen Aufwand.

    edit2:--
    Das ganze kann man auch mit Shellscripts machen ( also test oder [] ) aber mit PHP geht´s für mich einfacher. Also nutz z.B. das PHP CLI Interface.
    PHP-Code:
    $result=exec('ls <PFAD> | sed -e r/' '/\n/g | cut --delimiter='.' --fields=2')
    $result=split("\n",$result);

    for (
    $i=0;$i<sizeof($result),$i++)
    {
    if (
    $result[$i]==($result[$i+1])+1)
    { if (
    $chain===TRUE) ; else {
    $chain=TRUE$first_in_chain=$result[$i];
    // Beginn einer Kette halten wir fest.
    } } else 
    {
    if (
    $chain===TRUE)
    {
    unset (
    $chain); $finales_ergebnis[]=$first_in_chain.'-'.$result[$i-1].',';
    }
    else 
    $finales_ergebnis[]=$result[$i].',';
    }

    So, das ist ungestet und im nicht kontext sensitiven modus. Logik sollte klar sein und kannst es von heir aus auch in Shellscript umsetzen. Oder halt in PHP mit cronjob und cli - was auch immer... Blubb.
    Geändert von Angelmaker (12.06.2007 um 12:23 Uhr)
    Ich habe keine Signatur. Dieser Satz kein Verb.

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

     

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51