我的文件夹中有一个文件列表,我想根据文本文件对其进行重命名。例如:
这是文件夹中的 5 个文件。
101_T1.nii
107_T1.nii
109_T1.nii
118_T1.nii
120_T1.nii
我想让它们使用包含相同顺序的新文件名列表的文本文件重命名,但不带扩展名.nii
:
n01
n02
n03
n04
n05
我可以怎样做呢?
答案1
一个衬垫,此命令读取“列表”txt 并解析文件的每一行。
for file in *.nii; do read line; mv -v "${file}" "${line}"; done < list
答案2
你可以这样做:
paste OLD NEW|while read OLD NEW;do mv ${OLD} ${NEW};done
...其中名为“OLD”的文件包含旧文件名,名为“NEW”的文件具有新的匹配 (1:1) 名称。
答案3
如果您的 shell 支持进程替换,请尝试:
paste -d' ' <(ls *.nii) /path/to/textfile | xargs -n2 mv
或者你可以用 POSIXly 来做到这一点:
ls *.nii | paste -d' ' - /path/to/textfile | xargs -n2 mv