Shell Script um Files umzubennen

Post Reply
Message
Author
Thobias

Shell Script um Files umzubennen

#1 Post by Thobias »

Hallo, weiß zufällig einer, wie ich ein ShellScript schreiben kann, um Dateien umzubenennen, die alle mit dem selben Teil beginnen?

Als Beispiel:
Die Dateien

FGHS_DATA_Hallo
FGHS_DATA_Berta
FGHS_DATA_UndNochWas

sollen umbenannt werden in

hallo
berta
undnochwas

(die großgeschriebenen Namen sollten dann auch hinterher klein geschrieben sein)

Weiß einer, wie man das erreichen kann?
Das Problem ist, daß ich hier tausende von Dateien habe, die alle mit dem selben Anfang beginnen.

Thobias

#2 Post by Thobias »

Ok, habe inzwischen aus einem Chan die ersten Hilfen erhalten.
Um zumindest das "FGHS_DATA_" zu löschen, würde es folgende Skript machen:

for i in FGHS_DATA_*; do mv $i ${i#FGHS_DATA_}; done

Alternativ wurde auch

for a in *_DATA_*; do mv $a `echo $a | sed ....`; done
where .... = s/DFSG_//

genannt.

User avatar
jochen
prolinux-forum-admin
Posts: 699
Joined: 14. Jan 2000 15:37
Location: Jülich
Contact:

#3 Post by jochen »

Verwende doch einfach rename. Das ist Bestandteil des util-linux-Pakets und sollte daher auf jedem Linux vorhanden sein:

Code: Select all

rename FGHS_DATA_ "" FGHS_DATA_* 
Das erste Argument ist der Bestandteil, der aus dem Namen ersetzt werden soll, das zweite Argument ist die Ersetzungszeichenfolge. Da hier ein Namensbestandteil gelöscht werden soll, ist das zweite Argument leer (""). Und dann kommen nur noch die Namen der unzubenennenden Files.

Jochen
Die grösste Lüge der EDV? "Mal eben..."

Post Reply