Column_A Column_B
F001 IC500
F003 IC501
F006 IC502
F008 IC503
... ...
如何批量重命名目录?
Column_A Column_B
F001 IC500
F003 IC501
F006 IC502
F008 IC503
... ...
如何批量重命名目录?
F001,IC500
F003,IC501
F006,IC502
F008,IC503
然后运行以下脚本将这些目录重命名为它们的新名称:
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
用于将每行读取的内容根据我重新定义的分隔符,
分割为数组。
每行内容被存入变量dirName
中。
${dirName[0]}
可以获取到每行内容的第一部分(A列)。使用${dirName[1]}
可以获取到每行内容的最后一部分(B列)。
mv
命令用于进行重命名操作。
因此,使用mv -v "/singleFolder/${dirName[0]}" "/singleFolder/${dirName[1]}"
,我们将位于singleFolder
目录中的名称从列A重命名为列B中的新名称。
-v
选项显示命令执行过程中的详细信息。
while IFS=, read -r oldName newName;do
echo mv -v "/singleFolder/${oldName}" "/singleFolder/${newName}";
done < /path/to/file.csv
注意:在您的真实目录上执行重命名操作时,请删除echo
命令。
awk -F, '{ system("echo mv -v " "/singleFolder/"$1 " /singleFolder/"$2) }' /path/to/file.csv
$1
的内容将是来自.csv文件的第一列ColumnA,$2
将是基于awk的F字段分隔符的第二列ColumnB,该分隔符是逗号,
,由-F,
选项定义。
与另一个答案相同,请注意删除echo
命令以在您的实际目录上执行重命名操作。
xargs
和mv
进行操作:
/path/to/singleFolder$ xargs -a /path/to/file.csv -n 2 echo mv -v
注意事项:
singleFolder
目录(请参考命令提示符中的命令)echo
以进行实际重命名 :)
/path/to/file.csv
更改为你保存文件的.csv文件位置。然后切换到包含所有700个文件夹的目录并运行代码。 - αғsнιη