File Rename

Diskutiere File Rename im Shell-Skripte Forum im Bereich Programmieren unter Linux/Unix; Hallo Ich habe einen Ordner mit sehr vielen Dateien, welche ich per Script umbenennen möchte. Dateinamen alt: LC Part1 - Part2.pdf Dateinamen...

  1. #1 fabio_a, 09.01.2019
    fabio_a

    fabio_a Grünschnabel

    Dabei seit:
    09.01.2019
    Beiträge:
    1
    Zustimmungen:
    0
    Hallo

    Ich habe einen Ordner mit sehr vielen Dateien, welche ich per Script umbenennen möchte.

    Dateinamen alt:
    LC Part1 - Part2.pdf

    Dateinamen neu:
    LC Part2 - Part1.pdf

    Das heisst ich möchte bei jeder Datei Part1 (das was zwischen "LC " und " - " steht) und Part2 (das was nach " - " steht) vertauschen.

    Ich denke, dass es mit einer for f in * Schleife und dem Befehl mv in Kombination mit sed machbar sein sollte. Aber bei sed beisse ich mir die Zähne aus... Kann jemand helfen?

    Danke
     
  2. #2 Pik-9, 11.01.2019
    Zuletzt bearbeitet: 12.01.2019
    Pik-9

    Pik-9 Tripel-As

    Dabei seit:
    04.12.2008
    Beiträge:
    211
    Zustimmungen:
    4
    Wie wäre es damit?

    Code:
    for FL in *; do
      NEWNAME=$(echo "$FL" | sed 's/LC \(.*\) - \(.*\).pdf/LC \2 - \1.pdf/g')
      mv "$FL" "$NEWNAME"
    done
    Vorausgesetzt du befindest dich in besagtem Verzeichnis und es gibt dort keine Unterverzeichnisse. Ansonsten müsste man wohl mit find arbeiten.

    Viele Grüße,
    Pik-9

    PS: Es lohnt sich wirklich, sich ein Bisschen in sed einzulesen, denn wenn man den Umgang damit meistert, hat man ein wirklich mächtiges Konsolenwerkzeug zur Hand!
    https://tty1.net/sed-tutorium/sed-tutorium.html :rtfm:

    PSS: @marce @floyd62 Ihr habt Recht: mit einem * statt $(ls) ist es tatsächlich besser. Zur Erklärung: Ich habe meinen Code zwar getestet, allerdings hatte ich in meinen Dateinamen alle Leerzeichen durch _ ersetzt! :erschlag:
     
  3. marce

    marce Kaiser

    Dabei seit:
    01.08.2007
    Beiträge:
    1.227
    Zustimmungen:
    17
    da fehlt vermutlich auf jeden Fall ein Quoting wenn da Leerzeichen im Dateinamen sind...
     
  4. #4 floyd62, 11.01.2019
    floyd62

    floyd62 Routinier

    Dabei seit:
    01.05.2007
    Beiträge:
    322
    Zustimmungen:
    0
    Hi,

    zum Umbenennen von mehreren Datein ist manchmal "mmv" ganz hilfreich. Eventuell reicht ja etwas wie
    Code:
    mmv "LC*-*.pdf" "LC#2-#1.pdf"
    schon aus; vorher testen mit
    Code:
    mmv -n "LC*-*.pdf" "LC#2-#1.pdf"
    @marce,

    ja, einfacher und zuverlässiger wäre wohl
    Code:
    for FL in *; do
    ...
    Das erledigt die Shell intern, und es wird nicht das Ergebnis eines externen Kommandos (ls) nochmal geparst.
     
Thema:

File Rename

Die Seite wird geladen...

File Rename - Ähnliche Themen

  1. File-Index-Enigne based on redis (in-memory DB)

    File-Index-Enigne based on redis (in-memory DB): Hallo, ein paar Freunde und ich, haben ein kleines Programm geschrieben, welches alle, einem Dienst zur Verfügung stehenden Dateien indiziert und...
  2. Samba als Fileserver keine Berechtigung auf Unterordner

    Samba als Fileserver keine Berechtigung auf Unterordner: Hallo! Leider bin ich kein Spezialist unter Linux oder Samba. Ich muss hier einen alten Linux Samba Server als Fileserver für einen neuen Windows...
  3. [gelöst] - for file in ... nur für bestimmte Endungen?

    [gelöst] - for file in ... nur für bestimmte Endungen?: Hallo Zusammen Ich habe einen eigenen Server und das Ziel mittels einem Shell-Skript ein Verzeichnis auf neue Dateien zu überprüfen. Das Skript...
  4. Zugriff auf Samba Fileserver Freigaben verweigert(Samba 4 Active Directory Domäne)

    Zugriff auf Samba Fileserver Freigaben verweigert(Samba 4 Active Directory Domäne): Hallo, ich möchte eine Active Directory Domäne mit Samba4 erzeugen. Es handelt sich um zwei Server(Domänencontroller und Fileserver) und ca. 10...
  5. Log File durchsuchen

    Log File durchsuchen: Hallo zusammen, ich würde gerne eine immer wiederkehrende Stelle im Logfile einer Cicso ASA herausschneiden (rot markiert). Dieses sieht momentan...
  1. Diese Seite verwendet Cookies um Inhalte zu personalisieren. Außerdem werden auch Cookies von Diensten Dritter gesetzt. Mit dem weiteren Aufenthalt akzeptierst du diesen Einsatz von Cookies.
    Information ausblenden