Portál AbcLinuxu, 5. května 2025 03:06
perl -e 's/\.[^\.]*$/rename $_, uc($`) . $&/e for @ARGV' *.zip
Ve scriptu bash už nefunguje.
find /mnt/sdb/dilna -maxdepth 5 -name *r*.zip | while read smycka
do
find /mnt/sdb/dilna -maxdepth 5 -name *r*.zip | head -n 1 | perl -e 's/\.[^\.]*$/rename $_, uc($`) . $&/e for @ARGV' *.zip
done
echo "konec velkých písmen"
Toto přejmenuje vše na velké písmena, včetně koncovky .zip což nechci. perl -nle 'rename $_, uc'
ale ve scriptu mně to stejně nejde, jenom v terminálu viz find /mnt/sdb/dilna -maxdepth 5 -name *r*.zip | head -n 1 | perl -nle 'rename $_, uc'
Doufám že jsem to napsal správně a moc děkuji odborníkům za pomoc, bohužel perl neznám a bash málo.
require 'find' mydir = "/home/petr70/zalohazalohy" Find.find(mydir) do |path| unless File.directory? path dir, f = File.split(path) fa = f.split(".") File.rename(path, dir+"/"+fa[0].upcase+"."+fa[1]) end end
Možná třeba tak:
find * -type f | rename 's/([^\/]*)((z|Z)(i|I)(p|P))$/\U\1\L\2/'
Ale radši si to někde nejdřív vyzkoušej a nezapomeň si před tím udělat zálohu.
find * -type f | rename 's/([^\/]*)((z|Z)(i|I)(p|P))$/\U\1\L\2/'
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.