Как l может переименовать ряд каталогов, учитывая список новых имен?

l хотел бы переименовать мои каталоги после списка новых имен.

l задается вопросом, hoc может l использовать в своих интересах использование следующей команды для переименования ряда каталогов, которые находятся в том же основном каталоге.

find . -type d -name 'thefoldername*' -exec mv {} newfoldername \;

Фактические имена каталогов:

Actual_folder_names=['archery','benchpressing','bikingthroughsnow','blowingoutcandles','bowling','brushingteeth','cleanandjerk','divingcliff','drummingfingers','golfchipping','golfdriving']

изменение в:

new_folder_name=['Archery' ,'BenchPress' ,'Biking' ,'BlowingCandles' ,'Bowling' ,'BrushingTeeth','CleanAndJerk' ,'Diving' ,'Drumming'
,'GolfSwing1', 'GolfSwing2']

Спасибо

0
задан 23 January 2018 в 08:26

1 ответ

Можно просто поместить два списка имен в текстовых файлах, чтобы сделать переименование как это:

Создайте два списка

echo "'archery','benchpressing','bikingthroughsnow','blowingoutcandles','bowling','brushingteeth','cleanandjerk','divingcliff','drummingfingers','golfchipping','golfdriving'" |sed -e "s/'//g ; s/,/\n/g" > listorig
echo "'Archery' ,'BenchPress' ,'Biking' ,'BlowingCandles' ,'Bowling' ,'BrushingTeeth','CleanAndJerk' ,'Diving' ,'Drumming','GolfSwing1', 'GolfSwing2'" |sed -e "s/'//g ; s/,/\n/g" > listdest

Поместите два списка рядом и сделайте задание в режиме "Dry run"

paste listorig listdest | awk '{print "mv " $0}'

Если проверка хороша, действительно сделайте задание:

paste listorig listdest | awk '{print "mv " $0}' |sh 

И задание сделано :)

1
ответ дан 31 October 2019 в 03:42

Другие вопросы по тегам:

Похожие вопросы: