我在目录中有一个文件,名称如下:Af23Afs28Af33我想将其替换为:Afs23作为sb1Afs28作为sb2Afs33作为sb3其中sb1、sb2和sb3存储在另一个txt文件中有没有任何可能的方法在shell脚本中做到这一点?
我添加了一个函数mv
,因此您可以在真正移动之前测试此代码
当您满意时删除该功能。
# Test function
mv () {
echo "Command: mv "$1" "$2""
}
# newnames.txt is a file with lines like sb1 and sb2
readarray -t a < newnames.txt
i=0
# Look for filenames starting with Af
for f in Af*; do
mv "$f" "${a[i]}"
(( i++ ))
# Additional check: Do you have more Af* files than newnames?
(( i == ${#a[@]} )) && { echo "Not enough new filenames"; break; }
done