我正在使用此命令和sample_numbers_names.csv
文件重命名该文件夹中的多个文件,该文件夹的子文件夹具有不同的文件名。
while IFS=, read -a p ; do SAMPLENUM=${p[0]} ; find . -type f -name "${SAMPLENUM}*" -exec rename -v "${SAMPLENUM}" "${p[1]}_${SAMPLENUM}" {} \; ; done < sample_numbers_names.csv
csv文件有两列,第一列代表旧名称,第二列代表新名称。例如
111,abc
222,xyz
使用此命令后,我得到的输出就是这样
111.txt
转换为abc._111.txt
如何在abc后删除该dot
,以便重命名的文件看起来像abc_111.txt
而不是abc._111.txt
答案 0 :(得分:0)
以下似乎可以按需工作:
$ cat sample_numbers_names.csv
111,abc
222,xyz
$ mkdir -p foo/bar
$ touch foo/bar/{111,222}.txt
$ while IFS=, read old new ; do find . -type f | xargs rename "s/${old}/${new}_${old}/"; done < sample_numbers_names.csv
$ ls foo/bar/
abc_111.txt xyz_222.txt