csh*_*eth 4 command-line batch-rename csv
我在一个位置有 700 个目录,我需要使用 .csv 文件重命名它们,如下所示:
我想用 Column_B 的条目替换 Column_A 的名称。
Column_A Column_B
F001 IC500
F003 IC501
F006 IC502
F008 IC503
... ...
Run Code Online (Sandbox Code Playgroud)
如何批量重命名目录?
首先将您的数据导出为 .csv 文件格式,如下所示:
F001,IC500
F003,IC501
F006,IC502
F008,IC503
Run Code Online (Sandbox Code Playgroud)
然后运行以下脚本将这些目录重命名为新名称:
F001,IC500
F003,IC501
F006,IC502
F008,IC503
Run Code Online (Sandbox Code Playgroud)
read -a
用于将读取的每一行拆分为数组IFS
,我从中将其重新定义为逗号,
。
每行读入dirName
变量。
${dirName[0]}
我们越来越行(列A)的第一部分。随着${dirName[1]}
我们越来越行(列B)的最后一部分。
mv
用于重命名那里的命令。
因此mv -v "/singleFolder/${dirName[0]}" "/singleFolder/${dirName[1]}"
,我们将目录名称从 columnA 重命名为 columnB 中位于singleFolder
目录中的新名称。
-v
选项显示运行命令期间正在执行的操作。
您也可以使用该命令而不将行的内容作为这样的数组:
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
Run Code Online (Sandbox Code Playgroud)
注意:删除echo
命令以在您的真实目录上执行重命名。
归档时间: |
|
查看次数: |
1840 次 |
最近记录: |