Verwenden von sed zum Massenumbenennen von Dateien

Zielsetzung

Ändern Sie diese Dateinamen:

F00001-0708-RG-biasliuydaF00001-0708-CS-akgdlaulF00001-0708-VF-hioulgigl

zu diesen Dateinamen:

F0001-0708-RG-biasliuydaF0001-0708-CS-akgdlaulF0001-0708-VF-hioulgigl

Shell-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.

Antworten auf die Frage(10)

Ihre Antwort auf die Frage