schleife zum namenändern

Post Reply
Message
Author
marcdevil

schleife zum namenändern

#1 Post by marcdevil »

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
Posts: 277
Joined: 20. Jun 2000 14:18
Location: Dortmund

Re: schleife zum namenändern

#2 Post by andib »

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

oli
Posts: 46
Joined: 25. Dec 2000 15:40

Re: schleife zum namenändern

#3 Post by oli »

Hi,

versuch mal folgendes:

<blockquote><pre><font size="1" face="">code:</font><hr><font face="Courier New" size="2">
perl -e 'opendir(DIR, "path/to/dir");@inhalt = readdir(DIR);foreach (@inhalt) { $_ =~ s/_scan//g;}closedir(DIR);'
</font><hr></pre></blockquote>

cu

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

Jochen

Re: schleife zum namenändern

#4 Post by Jochen »

Ö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:

<blockquote><pre><font size="1" face="">code:</font><hr><font face="Courier New" size="2">ls | sed 's/\(.*\)_scan\(\..*\)/mv & \1\2/' | sh</font><hr></pre></blockquote>

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? <img src="http://www.pl-forum.de/UltraBoard/Images/Wilk.gif" border="0" align="middle">

Jochen

oli
Posts: 46
Joined: 25. Dec 2000 15:40

Re: schleife zum namenändern

#5 Post by oli »

Hi Jochen,

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

Was meinst du denn dazu ?

<blockquote><pre><font size="1" face="">code:</font><hr><font face="Courier New" size="2">
perl -e 'opendir(DIR, "path/to/dir");@inhalt = readdir(DIR);foreach (@inhalt) { $_ =~ s/_scan//g; print DIR $_;}closedir(DIR);'
</font><hr></pre></blockquote>

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.

User avatar
hjb
Pro-Linux
Posts: 3264
Joined: 15. Aug 1999 16:59
Location: Bruchsal
Contact:

Re: schleife zum namenändern

#6 Post by hjb »

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?

oli
Posts: 46
Joined: 25. Dec 2000 15:40

Re: schleife zum namenändern

#7 Post by oli »

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.

Jochen

Re: schleife zum namenändern

#8 Post by Jochen »

Also, nur noch mal so vorneweg: Ich bin <b>kein</b> 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
Posts: 46
Joined: 25. Dec 2000 15:40

Re: schleife zum namenändern

#9 Post by oli »

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 <img src="http://www.pl-forum.de/UltraBoard/Images/Happy.gif" border="0" align="middle">

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

cu

oliver
Last edited by oli on 24. Feb 2001 21:11, edited 1 time in total.
If you were supposed to understand it, we wouldn't call it code.

Post Reply