Dateien umbennen

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Tele
Beiträge: 42
Registriert: 10.06.2004 08:13:33
Wohnort: Schladen
Kontaktdaten:

Dateien umbennen

Beitrag von Tele » 05.09.2004 21:24:58

Hallo

Ich bin leider nicht der Programmierer. So wende ich mich an euch. :)

In einem Verzeichnis habe ich viele Dateien, alle fangen mit tn_ an. Jetzt möchte ich dieses tn_ abschneiden. Also eigentlich den Befehl

Code: Alles auswählen

mv t_bla bla
automatisieren.

Könnt ihr mir dabei helfen?

Gruß
Tele

Benutzeravatar
g-henna
Beiträge: 733
Registriert: 03.11.2003 14:59:56
Wohnort: Berlin

Beitrag von g-henna » 05.09.2004 21:47:30

Hi!

Ein Script schreiben:

Code: Alles auswählen

#!/usr/bin/python
import os
for file in os.listdir("."):
    if not os.path.isfile(file): continue
    newfile = file.split("_")[1]
    os.system("mv "+file+" "+newfile)
(ungetestet) Geht bestimmt auch einfacher mit regulären Ausdrücken oder so. Aber egal, wenn du das Script jetz als move_all.py im entsprechenden Verzeichnis speicherst, kannst du es einfach mit
python move_all.py
ausführen und alle Dateien in dem Ordner heißen nur noch so wie nach dem ersten Unterstrich.

Bye
g-henna
follow the penguin...

Tele
Beiträge: 42
Registriert: 10.06.2004 08:13:33
Wohnort: Schladen
Kontaktdaten:

Beitrag von Tele » 05.09.2004 22:10:55

Es scheint zu funktionieren. Aber bei den Dateien, in denen ein zweiter '_' drin ist, werden auch gekürzt. Und es soll nur bis einschlißlich derm ersten Unterstrich gekürzt werden.


Kannst du das soweit auch ändern?

Gruß
Tele

Benutzeravatar
domo
Beiträge: 268
Registriert: 11.07.2002 18:18:27

Beitrag von domo » 05.09.2004 22:24:24

Code: Alles auswählen

rename -n 's/^t_//' t_*
zeigt nur an. Falls ok

Code: Alles auswählen

rename 's/^t_//' t_*
Have fun

/Edit: Bei Bedarf einfach überall t_ durch tn_ ersetzen, Dein Beitrag ist hier ein wenig inkonsistent....
Zuletzt geändert von domo am 05.09.2004 22:27:34, insgesamt 1-mal geändert.
Freedom is the freedom to say that two plus two make four. If that is granted, all else follows.

Benutzeravatar
iocus
Beiträge: 55
Registriert: 25.03.2004 19:49:54
Wohnort: (CH)

Beitrag von iocus » 05.09.2004 22:25:45

Code: Alles auswählen

#!/usr/bin/python
import os
for file in os.listdir("."):
    if (file[0:3] == "tn_") and os.path.isfile(file):
        newfile = file[3:]
        os.system("mv "+file+" "+newfile)
...sollte gehen (auch ungetestet).
nur dateien mit tn_ am anfang werden umbenannt

Benutzeravatar
C_A
Beiträge: 1082
Registriert: 22.04.2004 14:51:01
Lizenz eigener Beiträge: GNU General Public License

Beitrag von C_A » 05.09.2004 22:29:55

wiki:massf2

Tele
Beiträge: 42
Registriert: 10.06.2004 08:13:33
Wohnort: Schladen
Kontaktdaten:

Beitrag von Tele » 05.09.2004 23:37:55

Ja Mensch, das ist doch klasse!

Sowohl das Python Script, wie auch das massf2 hat gut funktuioniert.

Klasse!


Vielen Dank!

Gruß
Tele

mastermind_the_real_one
Beiträge: 644
Registriert: 16.12.2003 15:44:51

Beitrag von mastermind_the_real_one » 06.09.2004 00:55:05

Wenn es was grafisches sein soll: krename.

greetz
mastermind

roli
Beiträge: 3174
Registriert: 10.09.2003 17:39:58

Re: Dateien umbennen

Beitrag von roli » 13.09.2004 14:38:29

Hi,

auch wenn es bis jetzt schon funktionierende Loesungen gibt, eine haette ich auch noch: mmv (Multiple Move). Nach der Installation sollte

Code: Alles auswählen

 mmv "tn_*" "$1" 
genau das machen was du moechtest, das tn_ abschneiden.
Roland


"Aber wenn du schon so unwissend bist, davon noch nicht gehört zu haben,
so will ich es doch als gut ansehen, daß du lieber einmal töricht fragst,
als weiterhin nichts von etwas zu wissen, das man doch wissen sollte."
aus "Die Edda des Snorri Sturluson", "Gylfis Täuschung"

Antworten