( shyciii | 2022. 11. 30., sze – 10:38 )

Megoldás egy másik fórumról meg is jött:

fumidname-be berakja mindet lekicsinyÍtve, majd a newstringbe az utolsó pontig levő szöveget beilleszti, utána ezt a szöveget átalakítja, hogy minden szöveg első betűje nagy legyen, és megy a funewname változóba.

Utána az ext változóba rakja az utolsó pont utáni szöveget (ami már eleve kisbetű, hisz a legelején mindent kisbetűre tettünk). Ezeket a sztringeket összefűzi a funewname-ben (.-ot beszút a kettő közé), majd kiírja. Ilyen faramuci szöveggel is jól működik.

 

funame="1 - .VaLAmi sziVATtYú.TXt"
fumidname=$(echo "$funame" | sed 's/\([A-Z]\)/\L\1/g')
newstring=${fumidname%.*}
funewstring=$(echo "$newstring" | sed 's/\([a-z]\)\([a-zA-Z0-9]*\)/\u\1\2/g')
ext=${fumidname##*.}
funewname="$funewstring.$ext"
echo $funewname