我在目录中有一个文件,名称如下: Afs23 Afs28 Afs33 我想替换为: AFS23作为SB1 AFS28作为SB2 AFS33作为SB3 sb1,sb2和sb3存储在另一个txt文件中 在shell脚本中有什么可能的方法?
答案 0 :(得分:0)
我添加了一个函数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