Bonehead的问题,已经搜索并尝试使用我发现的但我没有“得到”某些东西。大声笑。我的尝试失败了。
MacOS,目录中的数百张图片。全部采用AA111的命名格式(这是产品代码)。 A = alpha char,1 =数字字符。
因此该产品的主要图像是AA111.jpg。如果有相关图像,则将其命名为:
AA111_a.jpg
AA111_b.jpg
AA111_c.jpg
etc.
我正在移植到一个新的购物车,它想要的格式为:
AA111_1.jpg
AA111_2.jpg
AA111_3.jpg
etc.
所以我需要说mv任何名称格式为AA111_a.jpg到AA111_1.jpg的图像。
当天我会在睡梦中这样做,但我忘记了所有关于正则表达的知识。
答案 0 :(得分:0)
没有直接命令来实现这一点,你们很多人都使用下面的脚本:
cd $dir
mkdir destination
#iterate through each file contains pattern \*_\*.jpg
find . -type f -name '*_*.jpg' -print0 |
while IFS= read -r -d $'\0' line; do
#split file name into two parts
prefix=`echo "$line" | sed -n 's/^\(.*\)_\(.*\).jpg$/\1/p'`
postfix=`echo "$line" | sed -n 's/^\(.*\)_\(.*\).jpg$/\2/p'`
#conver postfix(a,b,c) to ASCII
postfix=$(expr `printf '%d' "'$postfix"` - 96)
#copy file to destination or use **mv** command
cp $line "$to/${prefix}_${postfix}.jpg"
done