Dateinamen kürzen

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von holybabel, 23.12.2009.

  1. #1 holybabel, 23.12.2009
    holybabel

    holybabel Grünschnabel

    Dabei seit:
    23.12.2009
    Beiträge:
    2
    Zustimmungen:
    0
    Hallo zusammen,

    ich möchte in einem Verzeichnis Dateinamen von 9 Stellen + Dateiendung auf die ersten 8 Stellen + Dateiendung kürzen. Habe dazu folgenden sed Befehl im Netz gefunden welcher allerdings von einer unbekannten Länge ausgeht:

    mv "$file" "`echo $file |sed -re 's/^([^.]{,8})[^.]*\.(.{,3}).*$/\1.\2/'`"

    Leider erhalte ich beim ausführen dieses Befehls folgende Fehlermeldung:

    "sed: illegal option -- r"

    Ich versuche das ganze auf einer HP-UX Kiste zum laufen zu bekommen. Bin allerdings absoluter SED-Neuling und hab keine Ahnung was ich nun machen muss, kann mir da jemand weiterhelfen?

    Gruß HolyBabel
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. #2 floyd62, 23.12.2009
    floyd62

    floyd62 Routinier

    Dabei seit:
    01.05.2007
    Beiträge:
    309
    Zustimmungen:
    0
    Standard-sed auf HP-UX unterstützt keine 'extended regular expressions', d.h. die "-r" Option gibts hier nicht ("sed: illegal option -- r"; Blick in die Manual-Page sollte das schon zeigen.).

    Du kannst dir natürlich 'nen GNU-sed installieren ... oder aber:

    Wenn alle deine Dateienamen aus exakt 9 Zeichen Basis und einer beliebigen Erweiterung zusammengesetzt sind, kannst du mit dem alten "sed" einfach etwas wie
    Code:
    new=`echo "$old" | sed -e 's/\(........\).\.\(.*\)/\1.\2/'`
    mv "$old" "$new"
    
    verwenden. Vor dem "mv" zu überprüfen, ob es die Datei "$new" schon gibt, schadet sicher nicht ;-)

    Unter den o.a. Voraussetzungen (exakte Länge bekannt etc.), ist evtl. "cut" etwas effizienter/einfacher als sed; das gäbe dann
    Code:
    new=`echo "$old" | cut -c1-8,10-`
    
    Gruss
     
  4. #3 holybabel, 23.12.2009
    holybabel

    holybabel Grünschnabel

    Dabei seit:
    23.12.2009
    Beiträge:
    2
    Zustimmungen:
    0
    Danke dir...der cut Befehl funktioniert perfekt.
     
Thema:

Dateinamen kürzen

Die Seite wird geladen...

Dateinamen kürzen - Ähnliche Themen

  1. Dateinamen mit Extension auf einen Maximalwert kürzen

    Dateinamen mit Extension auf einen Maximalwert kürzen: Hallo, ich muss Dateinamen die eine Extension (.mp3) haben auf eine maximale Länge von 30 Zeichen kürzen damit die Titel in meinem Auto Radio...
  2. Dateinamen kürzen/ändern

    Dateinamen kürzen/ändern: Hallo, kann mir jemand bei einer Zeile helfen? Ich versuche folgendes: Lösche die ersten 8 Zeichen ersetze die letzten 3 Zeichen in txt....
  3. [FRAGE] Dateinamen normalisieren während sie in einer "for" Schleife sind

    [FRAGE] Dateinamen normalisieren während sie in einer "for" Schleife sind: Moin Gemeinde, ich habe ein Skript welches Emails abholt und weiterverarbeitet, manche müssen ausgedruckt werden. Nun hat sich herausgestellt...
  4. Einfaches Shellscript - dateinamen ändern

    Einfaches Shellscript - dateinamen ändern: Hey, kann mir jemand vielleicht bei diesem miniscript helfen? ich habe dateien die folgendermaßen aussehen MM-DD-YY-dateiname und...
  5. Wie verschiedene Pattern in diversen Dateinamen finden und ersetzen?

    Wie verschiedene Pattern in diversen Dateinamen finden und ersetzen?: Hi Leute. Ich habe ein kleines Problem. Ich möchte mittels Bash nach bestimmten pattern in Dateinamen suchen und diese durch "nichts"...