Anzeige

Präfixe ersetzen im Verzeichnis


BasicC

Erfahrenes Mitglied
#1
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
#2
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
#4
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:
Anzeige