Hallo!
ich hab >350 Bilder vorliegen welche Dateinamen nach folgendem Muster haben
"( Fotos von Name ) 2004-11-03 Beschreibung.jpg"
ich möchte jetzt dieses Dateien so umbenennen das
"( Fotos von Name ) " gelöscht wird und nur "2004-11-03 Beschreibung.jpg" übrig bleibt.
wie geht das ?
Vielen Dank!
Tino
Hallo, Hier mal meine Version für die Kommandozeile
for i in `ls (*)*.jpg`;do echo $i ok $(echo "$i" | sed 's/(.*) //g');done
ob die Shellsubstitution nun so gut ist kann ich nicht sagen, aber ich verwende das immer so.Umbenennen von mehreren Dateien ist unter Linux/Unix nicht so einfach hinzubekommen. Irgendwie vermisse ich die einfache Funktionalität von DOS' ren, da gingen so nette sachen, wie "ren *.foo *.bar" , versucht das mal in der Shell :)
Alex
Am Mittwoch, 3. November 2004 21:47 schrieb Tino Schmidt:
Hallo!
ich hab >350 Bilder vorliegen welche Dateinamen nach folgendem Muster haben
"( Fotos von Name ) 2004-11-03 Beschreibung.jpg"
ich möchte jetzt dieses Dateien so umbenennen das
"( Fotos von Name ) " gelöscht wird und nur "2004-11-03 Beschreibung.jpg" übrig bleibt.
wie geht das ?
Vielen Dank!
Tino
Lug-dd maillist - Lug-dd@schlittermann.de http://mailman.schlittermann.de/mailman/listinfo/lug-dd
Ooops, da hat sich doch die Experimentalzeile statt der mv Zeile eingeschlichen hier die richtige Version for i in `ls (*)*.jpg`;do mv $i $(echo "$i" | sed 's/(.*) //g');done
Alex Am Mittwoch, 3. November 2004 23:13 schrieb Alexander Kühnlein:
Hallo, Hier mal meine Version für die Kommandozeile
for i in `ls (*)*.jpg`;do echo $i ok $(echo "$i" | sed 's/(.*) //g');done
ob die Shellsubstitution nun so gut ist kann ich nicht sagen, aber ich verwende das immer so.Umbenennen von mehreren Dateien ist unter Linux/Unix nicht so einfach hinzubekommen. Irgendwie vermisse ich die einfache Funktionalität von DOS' ren, da gingen so nette sachen, wie "ren *.foo *.bar" , versucht das mal in der Shell :)
Alex
Am Mittwoch, 3. November 2004 21:47 schrieb Tino Schmidt:
Hallo!
ich hab >350 Bilder vorliegen welche Dateinamen nach folgendem Muster haben
"( Fotos von Name ) 2004-11-03 Beschreibung.jpg"
ich möchte jetzt dieses Dateien so umbenennen das
"( Fotos von Name ) " gelöscht wird und nur "2004-11-03 Beschreibung.jpg" übrig bleibt.
wie geht das ?
Vielen Dank!
Tino
Lug-dd maillist - Lug-dd@schlittermann.de http://mailman.schlittermann.de/mailman/listinfo/lug-dd
Lug-dd maillist - Lug-dd@schlittermann.de http://mailman.schlittermann.de/mailman/listinfo/lug-dd
Hi Alex,
On Wed, Nov 03, 2004 at 23:17:39 +0100, Alexander K?hnlein wrote:
hier die richtige Version for i in `ls (*)*.jpg`;do mv $i $(echo "$i" | ?sed 's/(.*) //g');done
Die funktioniert immer noch nicht, wenn sich Leerzeichen in den Dateinamen befinden. Deswegen hat meine Loesung die Pipe an while read ... und verwendet an mehreren Stellen Doublequotes.
bye, Chris
On Wed, Nov 03, 2004 at 11:13:21PM +0100, Alexander Kühnlein wrote:
ob die Shellsubstitution nun so gut ist kann ich nicht sagen, aber ich verwende das immer so.Umbenennen von mehreren Dateien ist unter Linux/Unix nicht so einfach hinzubekommen. Irgendwie vermisse ich die einfache
Lötzinn!
Funktionalität von DOS' ren, da gingen so nette sachen, wie "ren *.foo *.bar" , versucht das mal in der Shell :)
seife@strolchi:/tmp/x> touch asdf12345 asdf23456 asdf56789 seife@strolchi:/tmp/x> ls -l total 0 -rw-r--r-- 1 seife suse 0 2004-11-04 01:32 asdf12345 -rw-r--r-- 1 seife suse 0 2004-11-04 01:32 asdf23456 -rw-r--r-- 1 seife suse 0 2004-11-04 01:32 asdf56789 seife@strolchi:/tmp/x> rename asdf fdsa * seife@strolchi:/tmp/x> ls -l total 0 -rw-r--r-- 1 seife suse 0 2004-11-04 01:32 fdsa12345 -rw-r--r-- 1 seife suse 0 2004-11-04 01:32 fdsa23456 -rw-r--r-- 1 seife suse 0 2004-11-04 01:32 fdsa56789 seife@strolchi:/tmp/x> rpm -qf `which rename` util-linux-2.12c-4
Hallo Stefan,
[04.11.04 01:33] Stefan Seyfried schrieb:
seife@strolchi:/tmp/x> rpm -qf `which rename` util-linux-2.12c-4
Das ist dummerweise Suse-spezifisch. Unter Debian war der perl-Maintainer irgendwie schneller:
$ dpkg -S `which rename` perl: /usr/bin/rename
Wie es unter RedHat aussieht weiß ich nicht.
Bert
Alexander Kühnlein wrote:
ob die Shellsubstitution nun so gut ist kann ich nicht sagen, aber ich verwende das immer so.Umbenennen von mehreren Dateien ist unter Linux/Unix nicht so einfach hinzubekommen. Irgendwie vermisse ich die einfache Funktionalität von DOS' ren, da gingen so nette sachen, wie "ren *.foo *.bar" , versucht das mal in der Shell :)
man mmv
Alex
Ciao, Thomas
Hi Tino,
On Wed, Nov 03, 2004 at 21:47:16 +0100, Tino Schmidt wrote:
ich hab >350 Bilder vorliegen welche Dateinamen nach folgendem Muster haben
"( Fotos von Name ) 2004-11-03 Beschreibung.jpg"
ich moechte jetzt dieses Dateien so umbenennen das
"( Fotos von Name ) " geloescht wird und nur "2004-11-03 Beschreibung.jpg" uebrig bleibt.
In erster Naeherung:
#!/bin/sh ls (*)*.jpg | while read f do n=$(echo "$f" | sed 's/(.*) //g') mv "$f" "$n" done
bye, Chris
Hallo,
ich habe für sowas immer mmv installiert.
Wenn die Dateien in einem einzigen Verzeichnis liegen, genügt es dort
mmv "( * ) *" "#2"
aufzurufen. Wie man mit Verzeichnissen umgeht: s. manpage (das ist leider nicht mit einem -r getan und es sind auch nicht so direkt regular expressions).
Carsten
On Wed, Nov 03, 2004 at 09:47:16PM +0100, Tino Schmidt wrote:
Hallo!
ich hab >350 Bilder vorliegen welche Dateinamen nach folgendem Muster haben
"( Fotos von Name ) 2004-11-03 Beschreibung.jpg"
ich möchte jetzt dieses Dateien so umbenennen das
"( Fotos von Name ) " gelöscht wird und nur "2004-11-03 Beschreibung.jpg" übrig bleibt.
wie geht das ?
Wer programmieren kann ist klar im Vorteil:
#!/usr/bin/env python
import os import re
for file in os.listdir("."): match=re.match(r'^.+?(\d\d\d\d-\d\d-\d\d.*)$', file) if not match: print "%s: Muster passt nicht" % file continue newfile=match.group(1) assert(not os.path.exists(newfile)) os.rename(file, newfile) print "%s --> %s" % ( file, newfile)
Gruß, Thomas
lug-dd@mailman.schlittermann.de