Linux下批量修改文件名- 大小写切换 - 全部改为大写全部改为小写

    技术2022-07-11  87

    要求: 几千个文件名类似于: car_VIT.mat 、 socker_stk.mat 需要全部改成 小写字母_大写字母.mat 的格式。 以及, 首字母大写,其他字符不变。

    全部改为小写

    sudo rename 'y/A-Z/a-z/' *

    全部改为大写

    sudo rename 'y/a-z/A-Z/' *

    Ubuntu用rename命令批量重命名文件 今天试试上面的方法:

    将当前目录下所有*.nc文件中Sam3替换成Stm32,命令如下:

    rename -n 's/Sam3/Stm32/' *.nc  /*确认需要重命名的文件*/ rename -v 's/Sam3/Stm32/' *.nc  /*执行修改,并列出已重命名的文件*/

    Perl正则表达式:

    匹配:m/<regexp>/ (可以省略m,直接写成/regexp/) 替换:s/<pattern>/<replacement>/ 转化:tr/<pattern>/<replacement>/ 

    rename命令常用到替换和转化两种(用匹配也没意义)。转换跟替换不同,替换是将replacement整个字符串替换pattern字符串,而转换则是用replacement逐个字符替换pattern逐个字符,结果依赖于replacement与pattern字符个数(见下述分析)。 (所以我想要部分改变大小写,可以使用,转化命令)

    sudo rename 'tr/[a-z][^a-zA-Z0-9][a-z]/[a-z][^a-zA-Z0-9][A-Z]/' *.mat 没有顺序匹配之分! 不可行

    解决办法: 把部分小写替换成大写。。

    rename -v 's/_bsbt/_BSBT/' *.mat

    部分改为大小写: 模仿各种命令,试了试以下几种命令,均不行, 计划尝试python 的方法。

    sudo rename [a-z]_[a-z].mat to [a-z]_[A-Z].mat 不可行 sudo rename {/a-z/_/a-z/}.mat to {/a-z/_/A-Z/}.mat 不可行 rename -v 's/[a-z]_[a-z]\.mat$/[a-z]_[A-Z]\.mat/' *.mat 不可行 rename -v 's/×_×\.mat$/[a-z]_[A-Z]\.mat/' *.mat 不可行

    去掉_ 后面的内容

    for name in `ls *.mat`;do mv $name ${name%_*}.mat;done

    修改_ 后面的为大写

    for name in `ls *.mat`;do mv $name ${name_[A-Z]}.mat;done 不可行, 文件全没了

    修改_ 后面的为大写

    for name in `ls *.mat`;do mv $name%_* ${name_[A-Z]}.mat;done 不可行

    将.jpeg 文件改成 *.jpg

    $ rename 's/\.jpeg$/\.jpg/' *.jpeg

    将‘imgNNNN.jpeg’变成‘danNNNN.jpg’

    # rename -v 's/img_(\d{4})\.jpeg$/dan_$1\.jpg/' *.jpeg img_5418.jpeg renamed as dan_5418.jpg img_5419.jpeg renamed as dan_5419.jpg img_5420.jpeg renamed as dan_5420.jpg img_5421.jpeg renamed as dan_5421.jpg

    将‘img_000NNNN.jpeg’变成‘dan_NNNN.jpg’

    # rename -v 's/img_\d{3}(\d{4})\.jpeg$/dan_$1\.jpg/' *jpeg img_0005417.jpeg renamed as dan_5417.jpg img_0005418.jpeg renamed as dan_5418.jpg img_0005419.jpeg renamed as dan_5419.jpg img_0005420.jpeg renamed as dan_5420.jpg img_0005421.jpeg renamed as dan_5421.jpg

    上面的例子中,子模式‘\d{4}’会捕捉4个连续的数字,捕捉的四个数字就是$1, 将会用于新的文件名。

    正则表达式

    python 批量修改大小写

    rename解释

    Processed: 0.010, SQL: 9