Portál AbcLinuxu, 19. července 2025 11:18
#!/bin/bash SIMULACIA=y urob() { find | sort -dr | (while read i; do [ "$i" = "." ] && continue if [ "`test $1 "$i"; echo $?`" = "0" ]; then NOVY=`echo "$i" | sed 's/ /_/g;y/ČčÝýÚúŮůŇňŘřŠšŽž/CcYyUuUuNnRrSsZz/'` # sem dopln odstranovanie diakritiky if [ "$SIMULACIA" = "y" ]; then echo "mv '$i' '$NOVY'" else mv "$i" "$NOVY" fi fi done) } urob -d # najprv len adresare urob -f # potom len subory
mv './#_MP3/Stone_Temple_Pilots/1992 - Core/Core - 07 - Creep.mp3' './#_MP3/Stone_Temple_Pilots/1992-Core/Core-07-Creep.mp3' mv: cannot stat `./#_MP3/Stone_Temple_Pilots/1992 - Core/Core - 07 - Creep.mp3': No such file or directory
mv "$i" "`echo \"$i\" | iconv -f utf-8 -t us-ascii//translit`"
#!/bin/bash # premenuje obsah vsetkych zadanych adresarov tak, aby neobsahovali diakritiku # a zjednodusi ich mena if [ $# -eq 0 ];then echo "Usage: ${0##*/} directory ..." else while [ $# -gt 0 ];do if [ -d "$1" ];then find "$1" -mindepth 1 -maxdepth 1 | while read name; do echo "$name" >&2 nname=`sed -r 'y/ĄąÁÂĂÄáâăäĆÇČćçčĎĐďđÉĘËĚéęëěÍÎíłľĹĺŃŇńňÓÔŐÖóôőöŔŕŘřŚŠŞśšşŤťŢţŮÚŰÜůúűüÝýŹŽŻźžż\x9D\x9A\x9E\x8D\x8A\x8E/AaAAA s/[^-0-9a-zA-Z_./()]+/_/g s/([-_])\1*/\1/g s/^[-_]+// s/[-_]*-[-_]*/-/g s/[-_ ]+([.()])/\1/g s/([.()])[-_ ]+/\1/g' <<<"$name"` if [[ "$name" != "$nname" ]]; then if [[ -e "$nname" ]]; then oname="$nname" for ((i=0; i<1000; i++)); do nname="${oname%.*}."`printf %04d $i`".${oname##*.}" [[ ! -e "$nname" ]] && break done fi mv -v "$name" "$nname" fi find "$1" -mindepth 1 -maxdepth 1 -type d -print0 | xargs -0r "$0" done shift else echo "Directory $1 does not exist" >&2 fi done fi
zkousel jsem tento skript...a on mi napsal tuhle chybu:
./rename.sh rename
rename/Dobytí severního pólu.mpg
sed: -e expression #1, char 192: unterminated `y' command
`rename/Dobytí severního pólu.mpg' -> `'
mv: cannot move `rename/Dobytí severního pólu.mpg' to `': No such file or directory
Co s tim?
Kdyz to udelam takto, tak mi to z nazvu udela takove paskvily...
napr:
DobytA_severnA_ho_pA3lu.mpg
zkousel jsem tento skript...a on mi napsal tuhle chybu:
Ještě mě napadlo - soubor obsahuje mezeru, měl by se dát do uvozovek. Pak to nenahlásí, že soubor nebyl nalezen. Například při přehrávání souboru je možné zadat příkaz
mplayer soubor.mpg, avšak v případě mezer je nutné zadat
mplayer "první soubor.mpg", vámi uvedený skript možná obsahuje tento problém.
Tak jsem objevil, ze v karename je plugin, ktery tohle umi, ale je zatim experimentalni....mate s nim nejake zkusenosti?
Prisli jste uz kvuli nemu nekdo o data?
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.