Wie verschiedene Pattern in diversen Dateinamen finden und ersetzen?

D

DerLuigi

Grünschnabel
Hi Leute.

Ich habe ein kleines Problem.

Ich möchte mittels Bash nach bestimmten pattern in Dateinamen suchen und diese durch "nichts" ersetzen. Ein konkretes Beispiel:

Dateien heissen:

Urlaub1.2012.Dez.zip
Urlaub2.2011.Nov.zip

Jetzt möchte ich mittels "rename" Befehl die Zeichen "2012", "2011", "Dez" und "Nov" entfernt haben. Sprich gegen "nichts" ersetzen.

Das geht natürlich auch so:

rename 's/.2012.Dez//g' *
rename 's/.2011.Nov//g' *

Am Ende steht dann dort:

Urlaub1.zip
Urlaub2.zip

Jetzt muss ich aber 2 mal den "rename" Befehl ausführen um alle Pattern zu suchen und zu ersetzen. Gibt es eine Möglichkeit das in einen "Einzeiler" zu packen? Sprich hintereinander zu klemmen, sodass nur einmal "rename" ausgeführt werden muss?

So ca:

rename 's/.2012.Dez//g' 's/.2011.Nov//g' *
 
Hast Du es schonmal mit einem 'oder' versucht, also z.B.
Code:
rename 's/.(2011|2012).(Dez|Nov)//g' *
Ohne Gewaehr!
 
Danke ich habe es jetzt so gelöst:

rename 's/.2012.Dez//g;s/.2011.Nov//g' *

EDIT
Habe jetzt doch mal Deine Syntax benutzt (funktioniert übrigens). Somit ist der Code jetzt noch etwas kompakter. Reicht sogar das so zu machen:

rename 's/.(2011|2012|Dez|Nov)//g' *
 
Zuletzt bearbeitet:

Ähnliche Themen

Charakter ersetzen in spez. Bereich mittels sed

Zurück
Oben