Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
bash:将部分文件名更改为小写_Bash_Replace_File Rename_Uppercase_Lowercase - Fatal编程技术网

bash:将部分文件名更改为小写

bash:将部分文件名更改为小写,bash,replace,file-rename,uppercase,lowercase,Bash,Replace,File Rename,Uppercase,Lowercase,我需要重命名文件列表,将任何文件扩展名更改为小写: ie:fromMy_TEST.1.2.3.4.5至My_TEST.1.2.3.4.5 目前我找到的是这条路 #!/bin/bash sourcefilename="My_TEST.ONE.two.Three.fOuR.FIve" newfilename="" for word in $(echo $sourcefilename | tr '.' '\n'); do if [ -z &qu

我需要重命名文件列表,将任何文件扩展名更改为小写: ie:from
My_TEST.1.2.3.4.5
My_TEST.1.2.3.4.5

目前我找到的是这条路

#!/bin/bash

sourcefilename="My_TEST.ONE.two.Three.fOuR.FIve"
newfilename=""
for word in $(echo $sourcefilename | tr '.' '\n'); do
        if [ -z "$newfilename" ]; then
                newfilename="$word"
        else
                newfilename="$newfilename.$(echo $word | tr [:upper:] [:lower:])"
        fi
done
是否有更好的方法(也许更优雅?

使用功能

fileName='My_TEST.ONE.two.Three.fOuR.FIve'
first="${fileName%%.*}"
rest="${fileName#*.}"
echo mv -v "${fileName}" "${first}.${rest,,[A-Z]}"
使用功能

fileName='My_TEST.ONE.two.Three.fOuR.FIve'
first="${fileName%%.*}"
rest="${fileName#*.}"
echo mv -v "${fileName}" "${first}.${rest,,[A-Z]}"