Datei umbenennen und die letzten X Zeichen vor der Erweiterung in eckige Klammern setzen

Datei umbenennen und die letzten X Zeichen vor der Erweiterung in eckige Klammern setzen

Ich habe youtube-dl verwendet, um den gesamten Kanal eines YouTubers zu Archivierungszwecken herunterzuladen. Ich habe das Standardbenennungsmuster zum Benennen der Videos verwendet, das den Titel des Videos, dann einen Bindestrich, die 11-stellige Video-ID und schließlich die Dateierweiterung verwendet.

z.B

title of the video - (an example)-oHg5SJYRHA0.mp4

Für zukünftige Downloads habe ich den Bindestrich entfernt und die Video-ID in eckige Klammern gesetzt. Das Problem ist, dass ich bereits Hunderte von Videos habe, die dem alten Benennungsschema folgen, und ich keine Bandbreite für das erneute Herunterladen verschwenden möchte, nur um das neue Benennungsschema zu erhalten.

Wie kann ich Dateien unterschiedlicher Länge so umbenennen, dass vor die „.mp4“ ein „]“ gesetzt wird und der Bindestrich, bzw. die 11 Leerzeichen/Zeichen vor der „.mp4“ durch ein „[“ ersetzt werden?

z.B

title of the video - (an example)[oHg5SJYRHA0].mp4

[BEARBEITEN] Ich habe vergessen anzugeben, dass ich eine Lösung bevorzuge, die unter Linux und/oder FreeNAS/BSD funktioniert.

Antwort1

Unter Linux können SieumbenennenBefehl wie folgt:

rename 's/-\w{11}(?=\.mp4$)/[$&]/' *.mp4

Regex-Erklärung:

-           # a hyphen
\w{11}      # 11 word characters
(?=         # positive lookahead, make sure we have after:
  \.mp4     # a dot followed by mp4
  $         # end of string
)           # end lookahead

Ersatz:

[           # opening square bracket
$&          # the whole match (i.e. 11 characters)
]           # closing squarre bracket

Wenn die 11 Zeichen kein Wortzeichen sein können, verwenden Sie Folgendes:

rename 's/-\K.{11}(?=\.mp4$)/[$&]/' *.mp4

Wobei .jedes Zeichen außer dem Zeilenumbruch passt.

Antwort2

Wenn es Ihnen nichts ausmacht, ein Drittanbieter-Tool zu verwenden, was ich für den einmaligen Gebrauch empfehlen würde, würde ich empfehlenerweiterter Umbenenner, es ist portabel und kostenlos.

Andernfalls können Sie Powershell verwenden,diese Beschreibungsagt Ihnen alles, was Sie wissen müssen. Sagen Sie uns Bescheid, wenn Sie nicht weiterkommen.

verwandte Informationen