Dateien umbenennen mit find und sed
Hallo, ich versuche mit: find . -name *ä* -exec mv -v {} `echo {} | sed 's/ä/ae/'` \; Dateien mit Umlauten umzubenennen. Als Ergebnis obigen Befehls erhalte ich: "./testä und ./testä sind die gleiche Datei". Es sieht so aus, dass die Kommandosubstitution nich funktioniert. Aber warum nicht? Dirk
Am Donnerstag, 14. Oktober 2004 15:17 schrieb Dirk Meier:
find . -name *ä* -exec mv -v {} `echo {} | sed 's/ä/ae/'` \;
Der Teil zwischen den `` wird bereits von der Shell ausgewertet, _bevor_ der find überhaupt startet. Und da kommt raus: jan@jack:~/tmp> echo {} | sed 's/ä/ae/' {} Beim find kommt also folgendes an: find . -name *ä* -exec mv -v {} {} \; Ich würde es so machen (eine Zeile): jan@jack:~/tmp> find . -name *ä* -printf "mv -v %p \`echo %p | sed 's/ä/ae/'\`\n" | sh „./ärger“ -> „./aerger“ Jan -- Linux-Quickies: http://www.jan-trippler.de PingoS: http://www.pingos.org TTS-HowTo: https://ssl.pingos.org/pingos/intern/ttshowto/rt.html
Hallo, Am Thu, 14 Oct 2004, Jan Trippler schrieb:
Am Donnerstag, 14. Oktober 2004 15:17 schrieb Dirk Meier:
find . -name *ä* -exec mv -v {} `echo {} | sed 's/ä/ae/'` \; [..] Ich würde es so machen (eine Zeile): jan@jack:~/tmp> find . -name *ä* -printf "mv -v %p \`echo %p | sed ^^^ auch das expandiert schon die shell!
find bekommt 'find . -name testä fooä ... -printf ... zu sehen. -dnh -- Disclaimer - These opiini^H^H damn! ^H^H ^Q ^[ .. :w :q :wq :wq! ^d X^? exit X Q ^C ^c ^? :quitbye CtrlAltDel ~~q :~q logout save/quit :!QUIT ^[zz ^[ZZZZZZ ^H man vi ^@ ^L ^[c ^# ^E ^X ^I ^T ? help helpquit ^D ^d man help ^C exit ?Quit ?q CtrlShftDel "Hey, what does this button d..."
Am Donnerstag, 14. Oktober 2004 23:50 schrieb David Haller:
Am Thu, 14 Oct 2004, Jan Trippler schrieb:
Am Donnerstag, 14. Oktober 2004 15:17 schrieb Dirk Meier:
find . -name *ä* -exec mv -v {} `echo {} | sed 's/ä/ae/'` \;
[..]
Ich würde es so machen (eine Zeile): jan@jack:~/tmp> find . -name *ä* -printf "mv -v %p \`echo %p | sed
^^^ auch das expandiert schon die shell!
find bekommt 'find . -name testä fooä ... -printf ... zu sehen.
Stimmt, auf das erste Stückchen habe ich nicht geachtet - und da ich nur eine Testdatei hatte, hats bei mir auch geklappt. Also, wie schon der alte David immer sagt ;-) - stets quoten! find . -name '*ä*' ... Jan -- Linux-Quickies: http://www.jan-trippler.de PingoS: http://www.pingos.org
Am Donnerstag, 14. Oktober 2004 23:50 schrieb David Haller:
Hallo,
Am Thu, 14 Oct 2004, Jan Trippler schrieb:
Am Donnerstag, 14. Oktober 2004 15:17 schrieb Dirk Meier:
find . -name *ä* -exec mv -v {} `echo {} | sed 's/ä/ae/'` \; [..] Ich würde es so machen (eine Zeile): jan@jack:~/tmp> find . -name *ä* -printf "mv -v %p \`echo %p | sed ^^^ auch das expandiert schon die shell! find bekommt 'find . -name testä fooä ... -printf ... zu sehen.
-dnh " (Anführungszeichen) sollen gelegentlich helfen :-)
-- Disclaimer - These opiini^H^H damn! ^H^H ^Q ^[ .. :w :q :wq :wq! ^d X^? exit X Q ^C ^c ^? :quitbye CtrlAltDel ~~q :~q logout save/quit :!QUIT ^[zz ^[ZZZZZZ ^H man vi ^@ ^L ^[c ^# ^E ^X ^I ^T ? help helpquit ^D ^d man help ^C exit ?Quit ?q CtrlShftDel "Hey, what does this button d..."
Hallo David, dein Disclaimer gefällt mir, obwohl mir das irgendwie bekannt vorkommt ... Falls Du kein Copyright auf das Teil beanspruchst versuch ich mal den Text auf eine Tasse zu brennen ... -- MfG Rolf Masfelder EMail: rolf.masfelder@nector.de
participants (4)
-
David Haller
-
Dirk Meier
-
Jan.Trippler@t-online.de
-
Rolf Masfelder