我知道这应该很简单,但我无法让它发挥作用。我的文件看起来像这样
>c12345|random info goes here that I want to delete
AAAAATTTTTTTTCCCC
>c45678| more | random info| here
GGGGGGGGGGG
我想要做的就是让它变得更简单,所以它可能看起来像这样
>seq1 [organism=human]
AAAAATTTTTTTTCCCC
>seq2 [organism=human]
GGGGGGGGGGGG
>seq3 [organism=human]
etc....
我知道一旦我通过执行以下操作获得索引部分,我就可以轻松追加该常量:
sed '/^>/ s/$/\[organism-human]/g'
但是如何构建该索引呢?
答案 0 :(得分:4)
这是使用awk的一种方法:
$ awk '/^>/ { $0 = ">seq" ++i " [organism=human]" } 1' file
>seq1 [organism=human]
AAAAATTTTTTTTCCCC
>seq2 [organism=human]
GGGGGGGGGGG
当该行以>
开头时,请将其替换为seq
后跟i
(每次增加1),然后[organism=human]
。命令末尾的1
为 true ,因此awk执行默认操作,即打印该行。
答案 1 :(得分:1)
使用Perl one-liner可能会更容易:
perl -ne 'chomp; if (/^>/) { s/\|.*$//; print "$_ \[organism=human\]\n";} else { print "$_\n";}' filename