这是我的档案:
>ref
AAAAAAA
>seq1
BBBBBBB
>ref
AAAAAAA
>seq2
CCCCCCC
>ref
AAAAAAA
>seq3
DDDDDDD
...
这是我想要的:
>seq1
AAAAAAA
>ref
BBBBBBB
>seq2
AAAAAAA
>ref
CCCCCCC
>seq3
AAAAAAA
>ref
DDDDDDD
...
因此,将第1行与第3行交换,第5行与第7行交换,第9行与第11行交换,等等。 任何关于如何做到这一点的建议(在bash,perl或python中)将不胜感激! :)
答案 0 :(得分:1)
从命令行使用perl,
perl -ne 'push @r, $_; print(@r[2,1,0,3]), @r=() if @r==4 or eof' file
答案 1 :(得分:1)
这是python 2.7
在这里,您逐行浏览输入文件。如果该行为ref
,则会将其替换为带有运行号码的seq
。其他线条保持不变。
fo = open("input.txt", "r")
calc = 1
ref = "ref"
seq = "seq"
for lines in fo:
lines = lines.strip()
if "ref" in lines:
lines = seq + str(calc)
calc = int(calc) +1
print lines
elif "seq" in lines:
print ref
else:
print lines
输出:
seq1
AAAAAAA
ref
BBBBBBB
seq2
AAAAAAA
ref
CCCCCCC
seq3
AAAAAAA
ref
DDDDDDD