将目录中的100个文件重命名为存储在文本文件中的新文件名

nayeim77


例如,我的工作目录中有100个文件的列表

GCF_000021605.1_ASM2160v1_genomic.fa  
GCF_001887455.1_ASM188745v1_genomic.fa  
GCF_003719755.1_ASM371975v1_genomic.fa  
GCF_000021625.1_ASM2162v1_genomic.fa

我想将它们重命名为

Vibrio_cholerae_O1_biovar_El_Tor_str._N16961_strain=N16961z
Vibrio_cholerae_O395_strain=O395
Vibrio_cholerae_M66-2_strain=M66-2
Vibrio_cholerae_O395_strain=O395

这些新文件名在文本文档中以与目录中原始文件名列表相同的顺序排列。

有没有一种方法可以完全重命名文件?

while read -u 3 -r name1 && read -u 4 -r name2
do
    mv "${name1}" "${name2}".fasta 
done 3<old_name_4.txt 4<new_name_4.1.txt

old_name.4.txt文件包含目录中需要重命名的new_4.1.txt文件名,并且文件包含文件的新名称(顺序相同)。

奇怪的是我的代码无法正常工作。当我运行命令时,它显示错误

mv: cannot move 'GCF_000021605.1_ASM2160v1_genomic.fa' to 'Vibrio_cholerae_O1_biovar_El_Tor_str._N16961_strain=N16961'$'\r''.fasta': No such file or directory

有没有办法自动执行此任务?任何帮助将不胜感激。谢谢!!

罗伊马

您的源文件中至少有一个来自Windows系统,因此具有不同的行尾(CR-LF而不是CR)。您需要对文本文件进行后处理以解决此问题

dos2unix new_name_4.1.txt

或者

tr -d '\r' <new_name_4.1.txt >tmp && mv -f tmp new_name_4.1.txt

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

根据目录中的最新文件名替换文本文件中的参数

如何将文件重命名为文件名中的子字符串?

将多个文件夹中的重复文件名重命名为另一个名称

将多个目录中的文件重命名为目录名

对于目录,将具有子目录名称+旧文件名的子目录中的文件重命名为新目录

将文件名中的特殊字符重命名为下划线

通过将文件名与文本文件中的名称进行比较来重命名文件

将文本文件重命名为内容文本(批处理)(powershell)

将文件名从大写重命名为小写

将目录中的所有文件重命名为其文件名的md5哈希(不包含内容)

在Windows 10中,如何将文件重命名为包含带有变音符的字符的文件名?

使用Java将文件名列表重命名为另一个列表的文件名

C#将文件重命名为与其他目录中的文件相同的名称

从文件名中提取文本并将文件重命名为 grep 文本?

如何在php中解析文件名并重命名为某个名称

将子目录中的pdf文件重命名为子目录的名称

将子目录中的多个文件重命名为其目录名称

Ruby:将用户给定目录中的所有文件从.txt重命名为文本

PHP使用子目录作为新文件名重命名所有文件

将文件夹中的文件重命名为一个名称

如何从多个文本文件创建组合数据框并根据 R 中的文件名重命名列

根据文本文件中包含的文本重命名目录中的文件

将隐藏文件重命名为它们的文件名,..(双点)

将文件重命名为带有文件名的列表

将文件重命名为文件名的前缀和中间部分

将文件重命名为已存在的文件名

如何递归地将目录树重命名为有效的 Windows 文件名?

将目录中的所有文件从$ filename_h重命名为$ filename_half?

PHP:以递归方式将目录中的所有文件重命名为小写