PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Umbenennen von Dateien mit Endung



rup
11-01-2001, 11:49
Hi Leute

Ich möchte per Bash-Script in einer Schleife Dateien umbenennen, die alle eine 3 oder 4 stellige Endung haben (z.B. xyz.html, 123.htm, abcde.HTML und so weiter). Wie trenne ich den Dateinamen am Punkt? ist das ein Fall für sed, awk oder kann ich das auch anders hinbekommen? Womit geht es am leichtesten.

Danke und Gruß Rupert

thommy
11-01-2001, 11:56
Beispiel:

<pre>
beispiel='/home/penguin/linux.jpeg'
#
dateiname=`basename $beispiel`
#
echo ${dateiname%.*}
linux
echo ${dateiname#*.}
jpeg
</pre>

Alles klar? http://www.linuxforen.de/ubb/wink.gif

Thomas

rup
11-01-2001, 13:32
Hallo Thomas

Danke es funzt. Aber warum das hab ich noch nicht ganz kapiert ( % und # ) http://www.linuxforen.de/ubb/confused.gif
Hab in meiner Linux-Lektüre nichts entsprechendes gefunden. Hab ich da ein ganzes Kapitel übersehen? Werd mich einfach mal schlau machen.

Danke Rupert

thommy
11-01-2001, 14:06
Den Mechanismus bezeichnet man als Parametersubstitution. Und das Ganze funzt nur in der Bash (pdksh könnte auch gehn, hab's noch nicht versucht).

Zum "schlau machen" kannst Du mal in http://www.linuxfibel.de/linux/linuxfibel/bash.htm#Variablenexpansion nachlesen, hab' alles mit Beispielen gespickt.

Thomas

rup
11-01-2001, 16:19
Danke ich hab's gelesen
Gruss Rupert

12-01-2001, 16:53
Hi!

Wenn es Dir nur um's Umbenennen geht, ist vielleicht mmv (Multiple Move; siehe man mmv) für Dich interessant, damit kannst Du so Sachen machen wie

mmv '*.htm' '#1.html'

(richtiges Quoten nicht vergessen; das * muß bis ins Programm durchkommen, nicht von der Shell aufgelöst werden!).

Grüße,
Michael.

rup
12-01-2001, 17:22
Hi Michael

Danke fuer dein Posting aber mit Thomas Methode hat die Aktion super geklapt. Werde mir aber trozdem mal mmv ansehen.

Gruss Rupert