Фон
Переименуйте один набор файлов на основе имени, которое соответствует другому набору, используя порядок сортировки, основанный на размере файла, чтобы соответствовать именам файлов. Файлы из обоих наборов имеют примерно одинаковые размеры. Достаточно близко, чтобы при сортировке по размеру файла оба списка были в одинаковом порядке. Количество файлов в каждом наборе одинаково.
проблема
Первый набор файлов:
master~$ for f in $(ls -S); do echo $f; done
06-AudioTrack_06.flac
08-AudioTrack_08.flac
01-AudioTrack_01.flac
05-AudioTrack_05.flac
02-AudioTrack_02.flac
Второй набор файлов:
corrupt~$ for f in $(ls -S); do echo $f; done
Groove_de_V..flac
Jump.flac
Do_You_Savvy.flac
Gershwins_Blues.flac
Blue_Skies.flac
If_I_Had_A_Ribbon_Bow.flac
Вопрос
Как переименовать первый набор следующим образом:
06-Groove_de_V..flac
08-Jump.flac
01-Do_You_Savvy.flac
05-Gershwins_Blues.flac
02-Blue_Skies.flac
скрипт
До сих пор...
master~$ for f in $(ls -S); do
IDX=$(echo $f | awk '{print substr( $1, 1, 2 )}');
echo "mv $i $IDX-";
done
Производит:
mv 06-AudioTrack_06.flac 06-
mv 08-AudioTrack_08.flac 08-
mv 01-AudioTrack_01.flac 01-
mv 05-AudioTrack_05.flac 05-
mv 02-AudioTrack_02.flac 02-
Спасибо!