OS X - 根据文件名长度批量添加文件前缀

时间:2017-09-27 08:20:45

标签: macos shell file-rename

我有一个包含数千个psd文件的文本列表,这些文件在文件名中的第一个下划线分隔符前面都有7或8位数字。

根据我需要在文件前面添加“X0”(7位)或Y(8位)所需的位数,所以我最终得到的文件在第一个下划线之前具有相同的长度。

实施例:
0123456_this_is_file_1.psd
0654321_this_is_file_2.psd
30301234_this_is_file_3.psd
50509876_this_is_file_4.psd

添加前缀后,文件名将如下所示:
X00123456_this_is_file_1.psd
X00654321_this_is_file_2.psd
Y30301234_this_is_file_3.psd
Y50509876_this_is_file_4.psd

如何在shell脚本(OS X Sierra)中完成?

1 个答案:

答案 0 :(得分:1)

我不知道OS X Sierra上的shell是什么,但ksh可能bash

while read line; do
     l=`echo "$line" | cut -d "_" -f 1`
     if [ ${#l} -eq 7 ]; then
          mv "$line" "X0$line"
     elif [ ${#l} -eq 8 ]; then
          mv "$line" "Y$line"
     else
          echo "Error with file $line"
     fi
done < $1

根据第一个数字的长度重命名文本列表中列出的文件。

如果您想了解有关脚本如何运作的更多解释,请与我们联系。