【发布时间】:2016-07-22 13:33:21
【问题描述】:
.fasta 文件的快速背景,从第一行开始的每隔一行都以> 开头,之后是标题名称。文件中没有其他地方可以找到>。由于有时合并 2 个 fasta 文件会导致标题名称不唯一,因此我想要一个简单的脚本,使每个标题名称都唯一。
我有:
for i in {1..4013}; do awk '/>/{c++;if(c=='"$i"'){sub(">",">'"$i"'_")}}1' Combined_Pass_2D_nanocorrect_round1_renamed.fasta > tmp.fasta; \
rm -rf Combined_Pass_2D_nanocorrect_round1_renamed.fasta; \
mv tmp.fasta Combined_Pass_2D_nanocorrect_round1_renamed.fasta; done
您可能会猜到这需要很长时间,但它确实有效。我用grep -c查找了headers的个数,确定是4013。
有没有更快的方法?
【问题讨论】:
-
您能否添加相同的示例行,它们在转换前的外观以及转换后的外观?
-
每次你写一个shell循环只是为了操作文本你有错误的方法。见unix.stackexchange.com/questions/169716/…。