Hinweis: Das Forum wird geschlossen! Neue Registrierungen sind nicht mehr möglich!

 Zurück zu Pro-Linux   Foren-Übersicht   FAQ     Suchen    Mitgliederliste
schleife zum namenändern

 
Neuen Beitrag schreiben   Auf Beitrag antworten    Pro-Linux Foren-Übersicht -> Programmieren - Allgemein
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
marcdevil
Gast





BeitragVerfasst am: 21. Feb 2001 17:18   Titel: schleife zum namenändern

hi

ich benötige eine schleife, mit der ich aus den dateinamen:
crash_scan.jpg
test_scan.jpg
dummy_scan.jpg
... und noch 10000 weitere
_scan entfernen kann

ciao
 

andib



Anmeldungsdatum: 20.06.2000
Beiträge: 277
Wohnort: Dortmund

BeitragVerfasst am: 21. Feb 2001 17:54   Titel: Re: schleife zum namenändern

Hi
soll das für einen praktischen Zweck sein, oder nur so aus Spass um etwas zu programmieren?
Für letzteres hab ich im Augenblick nicht die Zeit das zu beantworten - um sowas aber ohne Programmierung zu erledigen gibt es das Programm mmv (2 * m)!

CU
Andi
 
Benutzer-Profile anzeigen Private Nachricht senden

oli



Anmeldungsdatum: 25.12.2000
Beiträge: 46

BeitragVerfasst am: 22. Feb 2001 8:39   Titel: Re: schleife zum namenändern

Hi,

versuch mal folgendes:

code:

perl -e 'opendir(DIR, "path/to/dir");@inhalt = readdir(DIR);foreach (@inhalt) { $_ =~ s/_scan//g;}closedir(DIR);'



cu

oliver
_________________
If you were supposed to understand it, we wouldn't call it code.
 
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden

Jochen
Gast





BeitragVerfasst am: 22. Feb 2001 9:50   Titel: Re: schleife zum namenändern

Öh, oliver, benamst Dein perl-Skript auch die Dateien im Verzeichnis um? Ich sehe nur, dass Du die Dateinamen in ein Array einliest und dort aus jedem Namen das "_scan" entfernst, aber damit änderst Du doch nichts an den Namen auf der Platte - oder? Ich bastel erst seit kurzem ein bisschen mit perl und prinzipiell gibt's da nix, was es nicht gäbe, aber das wäre mir etwas zu heftig, wenn perl das tun würde.

Meine Lösung würde auf die Shell mit sed zurückgreifen:

code:
ls | sed 's/\(.*\)_scan\(\..*\)/mv & \1\2/' | sh


Beim "ls" könnte man noch ein "*.jpg" dransetzen, wennman auch noch andere Dateien im Verzeichnis hat. Der sed bastelt aus "xxx_scan.jpg" ein "mv xxx_scan.jpg xxx.jpg" und lässt seinen Output durch die folgende Shell ausführen.

Schleifen? Wozu Schleifen?

Jochen
 

oli



Anmeldungsdatum: 25.12.2000
Beiträge: 46

BeitragVerfasst am: 22. Feb 2001 16:33   Titel: Re: schleife zum namenändern

Hi Jochen,

hab' ich doch glatt was vergessen in der Eile ...

Was meinst du denn dazu ?

code:

perl -e 'opendir(DIR, "path/to/dir");@inhalt = readdir(DIR);foreach (@inhalt) { $_ =~ s/_scan//g; print DIR $_;}closedir(DIR);'



Passt das jetzt ... ?

Ach ja, wo kann man denn so die wichtigsten Muster und Infos zu sed nachlesen. Und jetzt bitte nicht RTFM, ok.

cu

oliver
_________________
If you were supposed to understand it, we wouldn't call it code.
 
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden

hjb
Pro-Linux


Anmeldungsdatum: 15.08.1999
Beiträge: 3236
Wohnort: Bruchsal

BeitragVerfasst am: 22. Feb 2001 17:57   Titel: Re: schleife zum namenändern

Hi,

lest einfach meinen Kurztip, da habe ich das ausschließlich mit Shell-Mitteln gelöst.

Gruß,
hjb
_________________
Pro-Linux - warum durch Fenster steigen, wenn es eine Tür gibt?
 
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger

oli



Anmeldungsdatum: 25.12.2000
Beiträge: 46

BeitragVerfasst am: 23. Feb 2001 19:47   Titel: Re: schleife zum namenändern

Hi,

auch wenn das mit der Shell besser geht, was ich gerne glaube, weiss ich trotzdem immer noch nicht, ob das mit der Perl Lösung nun richtig war, oder nicht. Wenn's nicht passt, bitte ich um Korrektur.

cu

oliver
_________________
If you were supposed to understand it, we wouldn't call it code.
 
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden

Jochen
Gast





BeitragVerfasst am: 24. Feb 2001 13:55   Titel: Re: schleife zum namenändern

Also, nur noch mal so vorneweg: Ich bin kein Perlmeister.

Aber auch wenn Du jetzt in Deiner Lösung die neuen Dateinamen ohne "_scan" mittendrin über das print-Komnmando ausgibst, reicht das doch noch nicht, um die Dateien tatsächlich umzubenennen, oder?

Und mit dem Substitute (s/_scan//g) veränderst Du ja auch den originalen Dateinamen in den Array-Elementen - meine ich. Dann kann man auch kein mv/rename/link (oder wie das bei perl auch immer heisst) mehr machen, da man ja den alten Dateinamen nicht mehr parat hat.

Hm. Ich muss mir dazu noch was anlesen. Hast Du schon was zu dem Thema ausprobiert, Oliver?
 

oli



Anmeldungsdatum: 25.12.2000
Beiträge: 46

BeitragVerfasst am: 24. Feb 2001 21:11   Titel: Re: schleife zum namenändern

Hi Jochen,

ja, also ich muss mir das ganze nochmal anschauen. Hatte aber kein Linux parat, weswegen dass ein bisschen schwierig wurde. Aber Hilfe ist in Sicht, denn am Freitag ist SuSE 7.1 mit der Post eingetrudelt und wartet auf Installation auf meiner W2K Maschine

Aber wir sollten diese Perl Diskussion beibehalten, denke ich. Sobald ich was weiss, meld ich mich wieder.
Bis dann.

cu

oliver
_________________
If you were supposed to understand it, we wouldn't call it code.


Zuletzt bearbeitet von oli am 24. Feb 2001 21:11, insgesamt 1-mal bearbeitet
 
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden

Beiträge vom vorherigen Thema anzeigen:   
     Pro-Linux Foren-Übersicht -> Programmieren - Allgemein Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehen Sie zu:  

Powered by phpBB © phpBB Group
pro_linux Theme © 2004 by Mandaxy