hans

hans

【Shell】给某一目录下所有文件重命名,五位数字,0补全。


刚接触 shell 时间太短,复杂的脚本写不出来。只能用一些简单的凑合一下,能实现我想要的功能就好。慢慢学!

这个脚本的功能大概是这样的,先进入一个目录,在该目录下还有很多子目录,再依次进入每个子目录,将子目录中的所有 jpg 图片重命名,格式为五位数字,0 补全。因为我实在没在网上找到直接输出五位数字的方法,所以就只好定义了一个 7 位数字 num,
结束重命名后将开头的 100 换成 0(我子目录下文件数量只有几千),这个可以各种举一反三的。

#!/bin/sh

cd train/
num=1000000
new=0
for dir_name in $(ls) #搜索子目录
do
	l=1
    if [ -d $dir_name ]; then
	    cd $dir_name/ #进入子目录
	    for img in $(ls)
	    do
		    let new=num+l
		    rename "s/$img/$new.jpg/" *
		    let l=l+1
	    done;
	    rename 's/^100/0/' *.jpg
	    cd ../
    fi
done;

如果大家有好的方法希望能评论分享一下。感谢感谢!

加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。