通过迭代行来交换脚本中的行



这是我的文件:

>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中)将不胜感激!:)

从命令行使用 perl,

perl -ne 'push @r, $_; print(@r[2,1,0,3]), @r=() if @r==4 or eof' file

这是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

相关内容

  • 没有找到相关文章

最新更新