2016-09-01 2 views
-1

Ich habe etwa 80 Dateien in einem Ordner, die alle die gleiche Benennungsstruktur folgen, die ich umbenennen muss. Wenn ich durch _ und? dann sollte es den Dateinamen in das, was ich suche, brechen. Im Folgenden finden Sie ein Beispiel für den aktuellen Dateinamen und den neuen Dateinamen. Irgendwelche Vorschläge, wie man das macht? Ich habe ein paar Tutorials online versucht, aber keines von ihnen hat wie erwartet funktioniert.Umbenennen von Dateien in Unix-Terminal

Aktuelle Dateiname: abcd_This ist meine Datei Name.pdf xyz

Neue Dateiname: Das ist meine Datei Name.pdf ist

Antwort

2

versuchen, diese mit bash:

for f in *; do g="${f#*_}"; h="${g%\?*}"; echo "$f -> $g -> $h"; done 

$ {var # * motiv} löschen Sie das minimale Motiv auf der linken Seite von var Inhalt

$ {var% motiv *} löschen Sie das minimale Motiv auf der rechten Seite des Var-Inhalts

Verwenden Sie Backslash vor? weil es unter UNIX-Shells ein Sonderzeichen ist

Verwenden Sie zum Maximieren des Motivs ## oder %% anstelle von # und%.

+0

Vielen Dank! Dies hat das Parsing für mich funktioniert und dann konnte ich es in den Rest meines Codes werfen, um die Datei tatsächlich zu verschieben und umzubenennen. Danke noch einmal! – user2788371