Präfixe ersetzen im Verzeichnis


BasicC

Erfahrenes Mitglied
Ich möchte ein Shell skript schreiben test.sh <old-prefix> <new-prefix> welches bei allen Dateinamen im aktuellen Verzeichnis die mit Präfix <old-prefix>beginnen durch den Präfix <new-prefix> ersetzt.

Irgendwie so?

$ ls
foo.dat foobar premv.sh test.txt
$ ./premv.sh foo zzz
$ ls
premv.sh test.txt zzz.dat zzzbar
 

Technipion

Erfahrenes Mitglied
Hallo BasicC,
ich erinnere dich da an die Aufgabe mit grep von neulich. Wie könntest du die Dateien mit bestimmtem Präfix auflisten?

Z.B. mit $ ls foo* in deinem Fall.
Allgemein könnte man auch sagen $ ls prefix*
Und natürlich kannst du auch reguläre Ausdrücke verwenden.

Du musst immer das was du schon gelernt hast im Hinterkopf behalten!
Aber fertige Lösungen gibt's von mir nicht. Erst will ich dein aktuelles Bash-Skript sehen.

Gruß Technipion
 

HonniCilest

Erfahrenes Mitglied
Ich denke mich verwirrt dieses old-prefix und new-prefix was muss mit denen in meinem Code passieren?
Das ist nichts anderes als ein Stück String, welcher am Anfang des Dateinamens steht.

Du hast also ein Skript, welches 2 Argumente $1 und $2 entgegennimmt.
Du iterierst alle Dateien, welche mit $1 beginnen und benennst diese um. Umbenennen = Verschieben
 
Zuletzt bearbeitet: