Verwenden von sed zum Massenumbenennen von Dateien
Zielsetzung
Ändern Sie diese Dateinamen:
F00001-0708-RG-biasliuydaF00001-0708-CS-akgdlaulF00001-0708-VF-hioulgiglzu diesen Dateinamen:
F0001-0708-RG-biasliuydaF0001-0708-CS-akgdlaulF0001-0708-VF-hioulgiglShell-Code
Zu testen:
ls F00001-0708-*|sed 's/\(.\).\(.*\)/mv & \1\2/'
Aufführen:
ls F00001-0708-*|sed 's/\(.\).\(.*\)/mv & \1\2/' | sh
Meine Frage
Ich verstehe den Sed-Code nicht. Ich verstehe, was der Ersetzungsbefehl ist
$ sed 's/something/mv'
meint. Und ich verstehe reguläre Ausdrücke etwas. Aber ich verstehe nicht, was hier passiert:
\(.\).\(.*\)
oder hier:
& \1\2/
Ersteres sieht für mich einfach so aus, als würde es bedeuten: "Ein einzelnes Zeichen, gefolgt von einem einzelnen Zeichen, gefolgt von einer beliebigen Längenfolge eines einzelnen Zeichens" - aber es steckt mit Sicherheit noch mehr dahinter. Soweit der letzte Teil:
& \1\2/
Ich habe keine Ahnung. Ich möchte diesen Code wirklich verstehen. Bitte helfen Sie mir hier raus, Jungs.