Mehrere Dateien kopieren und Zahl im Dateinamen beibehalten

A

alexx86

Grünschnabel
Hey,
angenommen, ich habe 3 Dateien:
04_DateiA, 04_DateiB, 04_DateiC
und ich möchte die kopieren in:
05_DateiA, 05_DateiB, 05_DateiC ,
wie mach ich das denn automatisiert?

Ich denke an irgendwas in der Richtung:
Code:
for($file in `ls 04*`)
do
  cp $file `sed $file s/4/5/`
done

Ich hab's aber nicht mehr so drauf im bash-Skripten... wäre schön, wenn mir jemand aushelfen könnte ;)
 
Fast Richtig
Code:
for file in `ls 04*`; do 
  cp $file `echo $file | sed 's/4/5/'`; 
done
mfg
HeadCrash
 
Abend,
"sed 's/4/5/' $file" würde eine Ersetzung in der Datei vornehmen, dein Beispiel sorgt hier für nen Syntaxerror ;)
Sed is a stream editor. A stream editor is used to perform basic text
transformations on an input stream (a file or input from a pipeline).
aus "man sed"
Ich erzähl sed er soll mit dem Dateinamen etwas machen, indem ich die Ausgabe von echo, mit der Pipe "|", als Eingabe für sed verwende. http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO-4.html

Du sagst sed "Mach dieses und jenes mit dieser Datei".

mfg
HeadCrash
 
Die 'sed'-Loesung ist meiner Meinung nach aeusserst fehleranfaellig und ausserdem unnoetig umstaendlich, zumal es ja allein mit der Bash funktioniert. Es gibt uebrigens auch ein Programm namens 'mmv' (multiple move), das hier weiterhelfen koennte, hab's allerdings selber noch nie benutzt.
 
Wonach muss ich denn suchen, damit ich eine Erklärung für dein Skript finde? Du hast übrigens code-Tags vergessen.
 
Ah, sehr cool. Schon oft gesehen aber nie die passende Doku gefunden, ich danke dir!
 

Ähnliche Themen

[Gelöst] Suchen und ersetzen mit Hilfe mehrerer Parameter

Problem mit HSPA+ Modem Huawei E353 - Installation unmöglich?

Zeilen löschen und ersetzen mit sed

Kopieren von Dateien per Shell

Gleicher Befehl über Script -> Fehler?

Zurück
Oben