Linux下如何基于名称列表批量重命名NCBI下载的fasta文件
Linux下批量按对应列表重命名NCBI基因组文件的最简方案
所有操作都在存放fasta文件、file1.txt、file2.txt的文件夹中执行。
前置校验
先确认两个列表文件的条目数完全匹配,运行以下命令:wc -l file1.txt file2.txt
输出的两个文件行数必须完全一致,否则先核对列表内容修正后再进行后续操作。
第一步:模拟运行确认配对关系(必做,避免改错文件)
运行以下命令,只会打印待执行的重命名操作,不会实际修改文件名:paste file1.txt file2.txt | while read old_name new_name; do echo "mv $old_name $new_name"; done
逐行检查打印出的旧文件名、新文件名是否和你需要的对应关系完全一致。
第二步:执行实际重命名
确认模拟输出完全正确后,运行以下命令完成重命名:
paste file1.txt file2.txt | while read old_name new_name; do mv "$old_name" "$new_name"; done
注意事项
- 文件名包含空格、特殊字符时,命令中包裹
"$old_name"和"$new_name"的双引号不可省略,否则会出现识别错误 - 建议执行重命名前先备份所有原始fasta文件,防止误操作
- 若出现
No such file or directory报错,检查对应旧文件名是否和文件夹内的实际文件名完全匹配,排查大小写、后缀拼写问题
内容的提问来源于stack exchange,提问作者sowptika
相关产品推荐
相关产品推荐

