首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >更改.fasta文件名

更改.fasta文件名
EN

Unix & Linux用户
提问于 2020-07-12 00:38:54
回答 1查看 172关注 0票数 -3

我有像2000 fasta文件这样的结构:

代码语言:javascript
复制
Name_ID#_Name2_ID1...2000.fasta

我想将文件名的顺序更改为:

代码语言:javascript
复制
Name2.Name_ID#_ID1...2000.fasta

有人对我如何做到这一点有建议吗?

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2020-07-12 02:16:59

解决这个问题有很多种方法。一种办法是:

代码语言:javascript
复制
#!/bin/bash

for i in *.fasta; do
    tokens=( $(echo "${i}" | sed -e 's/_/ /g') )
    newName="${tokens[2]}.${tokens[0]}_${tokens[1]}_${tokens[3]}'"

    echo "mv ${i} ${newName}"
done

此脚本循环遍历以.fasta结尾的当前目录中的每个文件;每次通过循环,变量${i}都包含当前文件名。

接下来,脚本使用sed将下划线(_)更改为文件名中的空格,并将其存储为令牌数组。对于一个名为Name_ID1_Name2_ID1000.fasta的文件,您的结果是:

代码语言:javascript
复制
tokens[0]='Name'
tokens[1]='ID1'
tokens[2]='Name2'
tokens[3]='ID1000.fasta'

接下来,脚本根据这些令牌和您对所需顺序的描述创建newName。最后,脚本打印用于执行重命名的mv命令。

如果你运行这个脚本,它会打印它会做什么。你可以检查它,以确保它是你想要的行为。如果是这样,则可以删除echo

代码语言:javascript
复制
mv "${i}" "${newName}"

然后再运行一次。这样,它实际上将执行重命名。

票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/598015

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档