Primeiro, exporte seus dados como formato de arquivo .csv , como abaixo:
F001,IC500
F003,IC501
F006,IC502
F008,IC503
Em seguida, execute o script abaixo para renomear esses diretórios para seus novos nomes:
while IFS=, read -a dirName; do
echo mv -v "/singleFolder/${dirName[0]}" "/singleFolder/${dirName[1]}";
done < /path/to/file.csv
mv -v /singleFolder/F001 /singleFolder/IC500
mv -v /singleFolder/F003 /singleFolder/IC501
mv -v /singleFolder/F006 /singleFolder/IC502
mv -v /singleFolder/F008 /singleFolder/IC503
-
read -a
usado para dividir cada linha lida no array com base emIFS
, que redefinii para comma,
. -
Cada linha lê na variável
dirName
. - Com
${dirName[0]}
, estamos obtendo a primeira parte da linha (coluna A). -
Com
${dirName[1]}
, estamos obtendo a última parte da linha (coluna B). -
mv
comando usado para renomear lá.
Portanto, commv -v "/singleFolder/${dirName[0]}" "/singleFolder/${dirName[1]}"
, estamos renomeando o nome dos diretórios de columnA para new-name em columnB, que estão localizados no diretóriosingleFolder
.
A opção -
-v
mostra o que está sendo feito durante a execução do comando.
Além disso, você pode usar o comando sem tornar o conteúdo da linha como uma matriz como esta:
while IFS=, read -r oldName newName;do
echo mv -v "/singleFolder/${oldName}" "/singleFolder/${newName}";
done < /path/to/file.csv
Nota: remova o comando echo
para executar a renomeação em seus diretórios reais.