gpt4 book ai didi

bash - 使用 awk 加入匹配后的行

转载 作者:行者123 更新时间:2023-12-05 08:33:31 27 4
gpt4 key购买 nike

我有一个如下所示的列表:

>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

这显然不是我想要做的。

如有任何帮助,我们将不胜感激!

谢谢

最佳答案

这个 awk 单行代码应该适用于您的示例:

awk '/^>/{printf "%s,",$0;next}7' file

它加入以> 开头的行它下面的线。如果(+/-)是 key ,您可以将图案更改为您感兴趣的 key 。

关于bash - 使用 awk 加入匹配后的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38957730/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com