【发布时间】:2016-08-15 15:06:27
【问题描述】:
我有一个如下所示的列表:
>aaa(+)
AAAAAAAAAA
>bbb(+)
BBBBBBBBBBBBBBBB
>ccc(-)
CCCCCCC
我想使用 awk 在 '(+)' 或 '(-)' 之后加入下一行,并使用逗号分隔符,使其看起来像这样:
>aaa(+),AAAAAAAAAAA
>bbb(+),BBBBBBBBBBBBBBBB
>ccc(-),CCCCCCC
我已经尝试过以下方法(在 bash 中):
cat $file | awk '/(-)/||/(+)/{if (x)print x;x"";}{x=(!x)?$0:x","$0;}END{print x;}' > $new_file
但这似乎给出了这样的结果:
>aaa(+),AAAAAAAAAAA
>aaa(+),AAAAAAAAAAA,>bbb(+),BBBBBBBBBBBBBBBB
>aaa(+),AAAAAAAAAAA,>bbb(+),BBBBBBBBBBBBBBBB,>ccc(-),CCCCCCC
这显然不是我想要做的。
任何帮助将不胜感激!
谢谢
【问题讨论】:
-
stackoverflow.com/questions/15857088/… 非常接近。如果这实际上是您正在操作的内容,您可能希望在问题中包含“fasta”。