Batch Dateien im Ordner umbenennen

9

Wie kann ich Text aus Dateinamen in einem Ordner entfernen?

Ich versuche gerade:

rename s/"NEWER_(.*?)"//g *

Aber nichts wird umbenannt

Ich habe einen übergeordneten Ordner mit einer Reihe von Unterordnern innerhalb von Dateien, den OneDrive für eine gute Idee hält, eine "(NEWER_timestamp)" anzuhängen, und ich möchte diese entfernen.

Beispiel Dateinamen:

getyou.ico (NEWER_1417529079.87)
o7pm.ico (NEWER_1417529184.89)
o7th.ico (NEWER_1417529135.81)
    
Kevin 15.12.2014, 21:40

2 Antworten

8

Versuchen Sie Folgendes:

find /path/to/parrent-dir -type f -exec rename -n 's:[^/]*(.*) .*$::' {} +

./o7th.ico (NEWER_1417529135.81)                                 renamed as /o7th.ico
./sub-dir (NEWER_1417529135.81)/getyou.ico (NEWER_1417529079.87) renamed as /sub-dir (NEWER_1417529135.81)/getyou.ico
./sub-dir (NEWER_1417529135.81)/o7pm.ico (NEWER_1417529184.89)   renamed as /sub-dir (NEWER_1417529135.81)/o7pm.ico
./getyou.ico (NEWER_1417529079.87)                               renamed as /getyou.ico
./o7pm.ico (NEWER_1417529184.89)                                 renamed as /o7pm.ico
  • Alle [^/]*(.*) .*$ stimmen nur mit dem letzten Teil des Pfades überein, der kein / enthält. Und
  • Im obigen Regex ist (.*) eine Gruppe, die nach dem letzten / und vor einem Leerzeichen mit allem übereinstimmt. Seine Rückreferenz lautet .
  • .*$ stimmt mit allem überein, um $ des Dateinamens nach Leerzeichen zu beenden.
  • Schließlich haben wir im Ersetzungsteil von rename s/.../REPLACEMENT/ nur die Matched-Gruppe behalten, die zwischen der letzten \ und einer Leerstelle (.*) liegt, die als Gruppe von Übereinstimmungen bekannt ist.
αғsнιη 15.12.2014, 22:27
1

Sie sollten in Betracht ziehen, die Anführungszeichen außerhalb der Regex zu verwenden (sie werden wörtlich als Anführungszeichen verwendet) und escape ( . Versuchen Sie es;

rename -n 's/ \(NEWER_\d{10}.\d{2}\)$//' *NEWER*

Die Genauigkeit des Ausdrucks ist möglicherweise nicht notwendig, aber Sie können beim Ändern von Dateien nicht zu vorsichtig sein.

    
muru 15.12.2014 21:51

Tags und Links