用unix中txt文件中的名称重命名目录中的多个文件

  • 本文关键字:文件 重命名 unix txt unix
  • 更新时间 :
  • 英文 :


我在目录中有一个文件,名称如下: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

最新更新