根据文本文件重命名文件列表


8

我有一个文件夹中的文件列表,我想根据文本文件重命名该文件夹。例如:

这些是文件夹中的5个文件。

101_T1.nii
107_T1.nii 
109_T1.nii
118_T1.nii
120_T1.nii

我想使用一个包含相同顺序的新文件名列表的文本文件来重命名它们,但不带扩展名.nii

n01
n02
n03
n04
n05

我该怎么做呢?


3
ls | paste - /the/text/file | xargs -n2 mv
斯特凡Chazelas

Answers:


9

一个衬里,此命令读取“列表” txt,并为每一行分析一个文件。

for file in *.nii; do read line;  mv -v "${file}" "${line}";  done < list

3

您可以这样做:

paste OLD NEW|while read OLD NEW;do mv ${OLD} ${NEW};done

...其中名为“ OLD”的文件包含旧文件名,而名为“ NEW”的文件具有新的匹配(1:1)名称。


0

如果您的外壳支持进程替换,请尝试:

paste -d' ' <(ls *.nii) /path/to/textfile | xargs -n2 mv

或者您可以POSIXly:

ls *.nii | paste -d' ' - /path/to/textfile | xargs -n2 mv
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.