【发布时间】:2015-07-01 14:16:08
【问题描述】:
这是我的文件:
>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 中)将不胜感激! :)
【问题讨论】:
-
1) 选择一种语言 2) 展示你目前的尝试
-
您必须为我们提供一个最小的工作示例。这也有助于我们了解您为解决问题所做的努力。 :)
-
使用
awk是小菜一碟。在伪代码中,您可以使用awk 'if line contains ">ref" {store line header; next line; store line content; next line; next line; print ">ref"; print current line; print stored line header; print stored line content}' -
哇哇哇,对不起,我没有说到目前为止我已经尝试过什么!我用 Vim 打开了我的文件,然后做了
:1m3|1m2|5m7|5m6|9m11|9m10,但是对于一个长文件来说,这样做有点像噩梦!所以这就是为什么我想到了另一个脚本。 @ShellFish,我明白了,但是我对 awk 还不够熟悉,无法吃这个“小菜一碟”;) -
在 vim 中录制一个宏,并根据需要执行多次。谷歌宏 vim,它是一个救生员
标签: python bash perl swap fasta