Portál AbcLinuxu, 27. října 2025 22:29
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.