OS X - 根据文件名长度为文件批量添加前缀
OS X - Batch add prefix to files depending on filename length
我有一个包含数千个 psd 文件的文本列表,这些文件在文件名的第一个下划线分隔符前都有 7 或 8 位数字。
根据位数,我需要在文件前加上 "X0"(7 位)或 Y(8 位),所以我最终得到的文件在第一个下划线之前具有相同的长度。
示例:
<br />0123456_this_is_file_1.psd
<br />0654321_this_is_file_2.psd
<br />30301234_this_is_file_3.psd
<br />50509876_this_is_file_4.psd
添加前缀后的文件名将是这样的:
<br />X00123456_this_is_file_1.psd
<br />X00654321_this_is_file_2.psd
<br />Y30301234_this_is_file_3.psd
<br />Y50509876_this_is_file_4.psd
如何在 shell 脚本(OS X Sierra)中完成?
我不知道 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 <
这将根据第一个数字的长度重命名文本列表中列出的文件。
如果您想了解有关脚本工作原理的更多说明,请告诉我。
我有一个包含数千个 psd 文件的文本列表,这些文件在文件名的第一个下划线分隔符前都有 7 或 8 位数字。
根据位数,我需要在文件前加上 "X0"(7 位)或 Y(8 位),所以我最终得到的文件在第一个下划线之前具有相同的长度。
示例:
<br />0123456_this_is_file_1.psd
<br />0654321_this_is_file_2.psd
<br />30301234_this_is_file_3.psd
<br />50509876_this_is_file_4.psd
添加前缀后的文件名将是这样的:
<br />X00123456_this_is_file_1.psd
<br />X00654321_this_is_file_2.psd
<br />Y30301234_this_is_file_3.psd
<br />Y50509876_this_is_file_4.psd
如何在 shell 脚本(OS X Sierra)中完成?
我不知道 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 <
这将根据第一个数字的长度重命名文本列表中列出的文件。
如果您想了解有关脚本工作原理的更多说明,请告诉我。