Benennen Sie eine Reihe von Dateien in debian
Frage
Ich habe Tausende von Dateien, die ich mit folgendem Format umbenennen müssen. 2008: 09: 18: 17: 45:. 48 alphanumerischer-alfanumeric.wav der erste Teil ist ein Datum
Ex. 2008: 09: 18: 17: 45: 48-703-s.wav
A umbenennen möchten es an:
20080918.174548.703.s.wav
‚:‘ Und ein für Menschen lesbares Format zu machen und leichter zu spaltenGrundsätzlich ist das zu entfernen.
Ich weiß, dass Umbenennungs ist das, was im suchen, aber die Regex nicht funktioniert. Ich eingeben:
Umbenennungs ‚S / (\ d): (\ d): (\ d): (\ d): (\ d): - (.?) - (\ d) wav / 1 2 3 $ $ $ $ 4 (.?). $ 5 $ 6 $ 7 $ 8.wav /‘ ./*
Lösung
Sie müssen Mannigfaltigkeiten beachten:
rename 's/(\d+)\:(\d+)\:(\d+)\:(\d+)\:(\d+)\:(\d+)-(.*)-(.?).wav/$1$2$3.$4$5$6.$7.$8.wav/' ./*
Andere Tipps
rename 's/(\d+):(\d+):(\d+):(\d+):(\d+):(\d+)-([^-]+)-([^.]+).wav/$1$2$3.$4$5$6.$7.$8.wav/' ./*
sollte verwendet werden - in Ihrer Version Sie immer nur eine Ziffer entsprechen. Plus, keine Notwendigkeit zu entkommen das.
Ist dies etwas, das Sie nur einmal tun würde, würde ich es auf diese Weise tun:
1) ls die Dateien in eine neue Datei: ls datadir> mytmp
2) bearbeiten, um die mytmp mit Ihrem bevorzugten Editor.
2a löschen Sie alle Zeilen, die keine Datendateien, die Sie interessieren sind, wie „“ und ".."
2b jede Zeile in einen Shell-Befehl bearbeiten, um die Datei umzubenennen. Ich mag Emacs, und
bauen würde eine Tastatur Makro: den Dateinamen Clip einfügen: „mv“, legen Sie die
Dateiname, Einführraum, legen Sie die Dateinamen erneut bearbeiten, um die Dateinamen eingefügt in
das gewünschte Format.
2c sparen
3) laufen sh Fertig! Nicht elegant, langweilig, wenn Ihr Editor unterstützt keine Makros oder eine ähnliche Funktionalität, aber garantiert arbeiten und git-er-getan.