Laden...

Regexausdruck, um UNC-Uhrzeitangabe aus Dateinamen zu entfernen

Erstellt von Steffo vor 10 Jahren Letzter Beitrag vor 10 Jahren 1.628 Views
Thema geschlossen
S
Steffo Themenstarter:in
45 Beiträge seit 2013
vor 10 Jahren
Regexausdruck, um UNC-Uhrzeitangabe aus Dateinamen zu entfernen

Hi,
ich habe eine Windowssicherung unter Linux manuell hergestellt. Nun habe ich dummerweise Dateien die bspw. auf folgende Weise umbenannt wurden: "SN200395 (2013_08_04 14_18_38 UTC).JPG". Ursprünglich hieß sie mal "SN200395.JPG".
Ich möchte mir nun ein Skript schreiben, das mir alle Dateien automatisch umbenennt. Der Regexausdruck (UTC) scheint bei diversen Online-Regex-Testern nicht zu funktionieren und wie der Ausdruck aussehen soll, der mir dann die Dateien ersetzt, weiß ich auch nicht.

Hat jemand eine Idee wie ich das umsetzen muss?

Danke im Voraus!

L. G.
Steffo

S
417 Beiträge seit 2008
vor 10 Jahren

Hi,

wenn alle Dateinamen in der Form aufgebaut sind, dann geht es ja nur drum den ersten space zu erkennen und dann quasi bis zum punkt alles zu entfernen.
Mit Regex könnte das in etwa so aussehen (ungetestet):

([^\s]+)[^.]+(\..+)

Damit hättest du dann die zwei gruppen für Dateiname und Dateiendung und das Replace pattern könnte abhängig vom Regex flavor z.B. so aussehen:

\1\2

oder $1$2
(siehe Die genannte Ersetzung auf regexr.com).

S
Steffo Themenstarter:in
45 Beiträge seit 2013
vor 10 Jahren

Danke, aber das ist problematisch, weil es durchaus Dateien gibt, die auch vorher einen Whitespace im Dateinamen hatten und manche Dateien fingen mit einem Punkt an und manche haben gar keine Endung und somit keinen Punkt.
Man muss sich also auf das "UTC" in den Klammen beziehen!

EDIT: Das wird bswp. nicht erkannt: " (2013_08_13 12_16_05 UTC).gitignore".

Liebe Grüße
Steffo

S
417 Beiträge seit 2008
vor 10 Jahren

Ok, dann halt so in der Art:

\s\(\d{4}(\_\d{2}){2}\s(\d{2}\_){2}\d{2}\sUTC\)

Das ersetzt du dann einfach durch nen leerstring.

49.485 Beiträge seit 2005
vor 10 Jahren

Hallo Steffo,

wenn du es mit (UTC) versucht hast, hast du dir offensichtlich nicht mal die Mühe gemacht, auch nur oberflächlich in ein [Artikel] Regex-Tutorial zu schauen.

Das Forum ist kein Patterngenerator, sondern wir erwarten ein bisschen mehr Eigeninitiative. Bitte beachte daher [Hinweis] Wie poste ich richtig? Punkt 1.1.1 und 1.1..

Zumal es gute Regex-Tester gibt, z.B. On-the-fly Regex-Tester: Regex-Lab. Der hätte dir dann auch gleich gesagt, dass dein Patternversuch nicht mal den Syntax-Regeln von Regex entspricht.

herbivore

Thema geschlossen