Переименуйте несколько файлов в каталоге с именами, присутствующими в текстовом файле в Unix - PullRequest
0 голосов
/ 29 октября 2018

У меня есть файлы в каталоге с такими именами, как: Afs23 Afs28 Afs33 И я хочу заменить его на: Afs23 как sb1 Afs28 как sb2 Afs33 как sb3 Где sb1, sb2 и sb3 хранятся в другом текстовом файле Есть ли возможный способ сделать это в сценарии оболочки?

1 Ответ

0 голосов
/ 30 октября 2018

Я добавил функцию 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...