[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [OT] perlexpr : Rekursive Entfernung einzelner Zeichen aus Datei- und Ordnernamen mit find & rename



Moin,
da ist nun noch die Frage wie ich:

'
und
`
escapen/quoten kann?

find ./ -name "*'*" -exec rename -v  'y/'/_/' '{}' \;

geht ins Leere.

Quote and Quote-like Operators
in
perldoc perlop
begreife ich nicht.

Ein q(') geht nicht:

fatter.sh: line 19: syntax error near unexpected token `)'
fatter.sh: line 19: `find ./ -name "*q(')*" -exec 
rename -v  'y/q(')/_/' '{}' \;'

Ich steh' wie Ochs' vor'm Berg. Ich kann doch nicht 800 GB per Hand 
durchflöhen. Der Rest funktioniert prima und ist rasend schnell.
(Ja, ich muß das Teil so oft aufrufen, bis keine Änderungen mehr nötig 
sind - das ist aber egal)

Tschüss
dirk

-- 

Bei Bedarf einfach kopieren - spart das Heraussuchen der ganzen 
Sonderzeichen:

fatter.sh:

===SNIP===

echo
echo  Make filenames FAT compatible
echo

# Muster für copy & paste
#find ./ -name "**" -exec rename -v  'y///' '{}' \;
#find ./ -name "*:*" -exec rename -v  'y/://d' '{}' \;

# verbose
# -v 

echo Satzzeichen + Auslassungen
find ./ -name "*:*" -exec rename -v  'y/://d' '{}' \;
find ./ -name "*?*" -exec rename -v  'y/?//d' '{}' \;
find ./ -name "*¿*" -exec rename -v  'y/¿//d' '{}' \;
find ./ -name "*;*" -exec rename -v  'y/;/_/' '{}' \;
find ./ -name "*,*" -exec rename -v  'y/,/_/' '{}' \;
find ./ -name "*&*" -exec rename -v  'y/&/And/' '{}' \;
#find ./ -name "*q(')*" -exec rename -v  'y/q(')/_/' '{}' \;
echo Klammern
find ./ -name "*(*" -exec rename -v  'y/(/-/' '{}' \;
find ./ -name "*)*" -exec rename -v  'y/)/-/' '{}' \;
find ./ -name "*[*" -exec rename -v  'y/[/-/' '{}' \;
find ./ -name "*]*" -exec rename -v  'y/]/-/' '{}' \;
find ./ -name "*{*" -exec rename -v  'y/{/-/' '{}' \;
find ./ -name "*}*" -exec rename -v  'y/}/-/' '{}' \;
echo  Deutsche Sonderzeichen
find ./ -name "*ä*" -exec rename -v  'y/ä/ae/' '{}' \;
find ./ -name "*Ä*" -exec rename -v  'y/Ä/Ae/' '{}' \;
find ./ -name "*ö*" -exec rename -v  'y/ö/oe/' '{}' \;
find ./ -name "*Ö*" -exec rename -v  'y/Ö/Oe/' '{}' \;
find ./ -name "*ü*" -exec rename -v  'y/ü/ue/' '{}' \;
find ./ -name "*Ü*" -exec rename -v  'y/Ü/Ue/' '{}' \;
find ./ -name "*ß*" -exec rename -v  'y/ß/ss/' '{}' \;
echo Sandinavische Sonderzeichen
find ./ -name "*å*" -exec rename -v  'y/å/aa/' '{}' \;
find ./ -name "*Å*" -exec rename -v  'y/Å/Aa/' '{}' \;
find ./ -name "*ø*" -exec rename -v  'y/ø/oe/' '{}' \;
find ./ -name "*Ø*" -exec rename -v  'y/Ø/Oe/' '{}' \;
find ./ -name "*æ*" -exec rename -v  'y/æ/ae/' '{}' \;
find ./ -name "*Æ*" -exec rename -v  'y/Æ/Ae/' '{}' \;
find ./ -name "*ð*" -exec rename -v  'y/ð/d/' '{}' \;
find ./ -name "*Ð*" -exec rename -v  'y/Ð/D/' '{}' \;
echo Südeuropäische Sonderzeichen
find ./ -name "*í*" -exec rename -v  'y/í//' '{}' \;
find ./ -name "*Í*" -exec rename -v  'y/Í//' '{}' \;
find ./ -name "*ñ*" -exec rename -v  'y/ñ//' '{}' \;
find ./ -name "*Ñ*" -exec rename -v  'y/Ñ//' '{}' \;
find ./ -name "*ò*" -exec rename -v  'y/ò//' '{}' \;
find ./ -name "*Ó*" -exec rename -v  'y/Ó//' '{}' \;
find ./ -name "*õ*" -exec rename -v  'y/õ//' '{}' \;
find ./ -name "*Õ*" -exec rename -v  'y/Õ//' '{}' \;
find ./ -name "*â*" -exec rename -v  'y/â/a/' '{}' \;
find ./ -name "*Â*" -exec rename -v  'y/Â/A/' '{}' \;
find ./ -name "*ô*" -exec rename -v  'y/ô/o/' '{}' \;
find ./ -name "*Ô*" -exec rename -v  'y/Ô/O/' '{}' \;
find ./ -name "*û*" -exec rename -v  'y/û/u/' '{}' \;
find ./ -name "*Û*" -exec rename -v  'y/Û/U/' '{}' \;
echo Französische Sonderzeichen
find ./ -name "*à*" -exec rename -v  'y/à/a/' '{}' \;
find ./ -name "*À*" -exec rename -v  'y/À/A/' '{}' \;
find ./ -name "*á*" -exec rename -v  'y/á/a/' '{}' \;
find ./ -name "*Á*" -exec rename -v  'y/Á/A/' '{}' \;
find ./ -name "*ç*" -exec rename -v  'y/ç/c/' '{}' \;
find ./ -name "*Ç*" -exec rename -v  'y/Ç/C/' '{}' \;
find ./ -name "*è*" -exec rename -v  'y/è/e/' '{}' \;
find ./ -name "*È*" -exec rename -v  'y/È/E/' '{}' \;
find ./ -name "*é*" -exec rename -v  'y/é/e/' '{}' \;
find ./ -name "*É*" -exec rename -v  'y/É/E/' '{}' \;
find ./ -name "*ê*" -exec rename -v  'y/ê/e/' '{}' \;
find ./ -name "*Ê*" -exec rename -v  'y/Ê/E/' '{}' \;

===SNIP===


Reply to: