Sie sind nicht angemeldet.

Lieber Besucher, herzlich willkommen bei: GentooForum.de. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

1

26.03.2008, 15:46

Script um Zahlen am Dateinamen zu löschen

Hallo, ich habe einen Ordner mit mp3s , die alle mit Zahlen im Namen anfangen (Bsp: 19.Commodores-Easy.mp3)
Ich will die Zahlen vor dem Namen löschen, ohne den Dateinamen selbst zu ändern. Also hier in Commodores-Easy.mp3
Wie löse ich das am einfachsten?
Man kann nicht alles wissen, aber alles lernen!

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »monsterherz« (06.04.2008, 11:30)


2

26.03.2008, 16:32

Schau dir mal die Ausgabe von diesem hier an:

Quellcode

1
for i in *.mp3; do echo mv $i $(echo $i | sed s/^[0-9]*//g); done

Kannst es dir ja noch beliebig anpassen, aber das Prinzip dürfte klar werden.
Gibt da auch noch mmv oder ähnliches, das einiges kann.
"Erst nachdem wir alles verloren haben, haben wir die Freiheit, alles zu tun."
"It's only after we've lost everything, that we're free to do anything!"

Jabber: Die ID kann via PN erfragt werden.

3

26.03.2008, 16:34

Hier, ein Einzeiler..

Quellcode

1
ls | while read filename; do mv "$filename" $(echo "$filename" | sed 's/^[0-9]*[ \.]*//g');done


Erklärung:
Zeichenkette am Anfang der Zeile (^)
bestehend aus Zahlen 0-9, 0-X mal (*)
gefolgt von Leerzeichen " " oder Punkt "\.", auch 0-X mal (*)
wird gelöscht.

Für MP3s würde ich easytag empfehlen. Dort kannst Du neben dem Umbenennen auch die ID3-Tags pflegen.

Viele Grüße

EDIT: maggu2810 war schneller..
Meine Lösung kann jedoch auch mit Leerzeichen in Dateinamen umgehen und entfernt auch den Punkt nach der Zahl.
Auch wenn Open-Source kostenlos ist, ist sie nicht umsonst. Dein Preis ist Dein Engagement und Mitarbeit an OS-Projekten.
Wenn Du keinen Preis bezahlen willst, bist Du die Ware. Und das ist nicht Open Source, geschweigedenn frei.

4

26.03.2008, 19:08

Du solltest aber was wichtiges nicht vergessen (das war der Grund, warum ich nicht ls verwendet hatte).
Gebe ls auf jedenfall bei sowas immer die Option "--color=none" mit, weil viele dies als alias gesetzt haben (bzw. es bei bestimmten Profilen schon gesetzt ist).
Ansonsten wird dir der Befehl komische ergebnisse liefern, wenn aus den Escapesequenzen die Zahlen entfernt werden.

Obwohl das ja wegen ^... nun auch nicht auftreten sollte.
Jedoch ist es immer sinnvoll diese Option zu verwenden, wenn man sed drauf los lässt. ;)
"Erst nachdem wir alles verloren haben, haben wir die Freiheit, alles zu tun."
"It's only after we've lost everything, that we're free to do anything!"

Jabber: Die ID kann via PN erfragt werden.

5

27.03.2008, 15:14

kann ich die Befehle testen, ohne was zu demolieren?
Man kann nicht alles wissen, aber alles lernen!

6

27.03.2008, 17:35

Dir wurden nun zwei Einzeiler fertig hier hingeschrieben, "bell" hat sogar noch einiges dazu erklärt.
Jetzt könntest du doch ein wenig Eigeninitiative noch einbringen und versuchen die Zeilen komplett zu verstehen und vielleicht noch einen Blick in die jeweilige man page werfen.
Wenn du wirklich was nicht verstehst, dann sage, wo das Problem liegt und man wird dir helfen.
X(

Zitat

Man kann nicht alles wissen, aber alles lernen!
"Erst nachdem wir alles verloren haben, haben wir die Freiheit, alles zu tun."
"It's only after we've lost everything, that we're free to do anything!"

Jabber: Die ID kann via PN erfragt werden.

7

27.03.2008, 17:52

Hallo monsterherz

Zum testen und experimentieren mit den genanten Befehlen könntest du dir ja einen test Ordner mit ein par Dateien anlegen, und ein wenig probieren.
(Natürlich alles als User! , nicht als root)
So versteht man (oder Frau) vielleicht auch leichter mit den Befehlen umzugehen.

MfG
josef.95

8

27.03.2008, 18:48

Das kann man natürlich machen, nachdem man glaubt die Zeile(n) verstanden zu haben und es nachprüfen will.
"Erst nachdem wir alles verloren haben, haben wir die Freiheit, alles zu tun."
"It's only after we've lost everything, that we're free to do anything!"

Jabber: Die ID kann via PN erfragt werden.

9

28.03.2008, 10:38

Hier, ein Einzeiler..

Quellcode

1
ls | while read filename; do mv "$filename" $(echo "$filename" | sed 's/^[0-9]*[ \.]*//g');done


Erklärung:
Zeichenkette am Anfang der Zeile (^)
bestehend aus Zahlen 0-9, 0-X mal (*)
gefolgt von Leerzeichen " " oder Punkt "\.", auch 0-X mal (*)
wird gelöscht.

Für MP3s würde ich easytag empfehlen. Dort kannst Du neben dem Umbenennen auch die ID3-Tags pflegen.

Viele Grüße

EDIT: maggu2810 war schneller..
Meine Lösung kann jedoch auch mit Leerzeichen in Dateinamen umgehen und entfernt auch den Punkt nach der Zahl.
Danke, der sieht sehr gut aus... Habe ich gestern Abend getestet. Die Dateinamen haben nach der Ausgabe aber den Punkt noch dabei . Also zum Beispiel .Commodores-Easy.mp3
Kann ich das durch [0-9;.] statt [0-9] korrigieren?


.
Man kann nicht alles wissen, aber alles lernen!

10

28.03.2008, 12:49

Bei mir funktioniert es.

Quellcode

1
2
3
4
~/test $ touch "19.Commodores-Easy.mp3" 
~/test $ ls | while read filename; do mv "$filename" $(echo "$filename" | sed 's/^[0-9]*[ \.]*//g');done 
~/test $ ls 
Commodores-Easy.mp3

Hast Du eventuell das "[ \.]*" vergessen?
Auch wenn Open-Source kostenlos ist, ist sie nicht umsonst. Dein Preis ist Dein Engagement und Mitarbeit an OS-Projekten.
Wenn Du keinen Preis bezahlen willst, bist Du die Ware. Und das ist nicht Open Source, geschweigedenn frei.

11

04.04.2008, 09:37

Frage zum mmv
Der Befehl ist im "Standard-Befehlssatz" anscheinend nicht drin. Bekomme auch keine Rückmeldung im Terminal bei Eingabe des Befehls.

Zitat

Das Tool mmv ist bei den meisten Distributionen standardmäßig nicht dabei und muss nachinstalliert werden. Sollte es nicht auf den Installations-CDs zu finden sein, helfen Suchmaschinen wie Rpmseek [2] oder Rpmfind.net [3]. Den Quell-Code gibt es unter http://ftp.debian.org/debian/pool/main/m…01b.orig.tar.gz. Debianer installieren das Paket mit dem Kommando apt-get install mmv
Die for-Schleife zum Umbenennen lässt sich mit mmv viel kürzer schreiben:
huhn@huhnix:~> mmv "*.htm" "#1.html"
Ich habe es manuell installiert. Aber trotzdem keine Rückmeldung. Es kommt aber auch keine Fehlermeldung bei Eingabe. Benötige ich ausser dem mmv noch etwas?
Man kann nicht alles wissen, aber alles lernen!

12

04.04.2008, 19:22

Quellcode

1
2
3
* app-misc/mmv
     Homepage:            http://packages.debian.org/unstable/utils/mmv
     Description:         Move/copy/append/link multiple files according to a set of wildcard patterns.

?(
"Erst nachdem wir alles verloren haben, haben wir die Freiheit, alles zu tun."
"It's only after we've lost everything, that we're free to do anything!"

Jabber: Die ID kann via PN erfragt werden.

13

06.04.2008, 11:30

Schon gegessen: Ich hatte anscheinend noch nen Fehler im Script bei der Eingabe. Alles oki :thumbsup:

Quellcode

1
2
3
4
5
6
7
8
9
10
19.David_Ackles-Down_River.mp3
19.Elvis_Presley-Love_Me_Tender.mp3
19.Katie_Melua-Its_only_pain.mp3
19.Nick_Cave_&_Kylie_Minogue-Where_The_Wild_Roses_Grow.mp3
laptop mp3-test # ls | while read filename; do mv "$filename" $(echo "$filename" | sed 's/^[0-9]*[\.]*//g'); done
laptop mp3-test # ls
01_Anleitung.mp3
10cc-Im_Not_In_Love.mp3
2_Raumwohnung-2_von_Millionen_von_Sternen.mp3
Alica_Keys-You_dont_know_my_name.mp3


Danke an Alle ! :)
EDIT:
Hallo, ich brauche Euch nochmal. Die Leerzeichen nach den Zahlen werden nicht gelöscht.
Ich teste momentan noch. Leider funzt es nicht.
Man kann nicht alles wissen, aber alles lernen!

Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von »monsterherz« (14.05.2008, 21:24)