【发布时间】:2019-02-28 18:52:02
【问题描述】:
这似乎可以在单个长 awk 命令中实现。但我对 awk 了解得不够好。
我想从第 2 行开始,在输入的每 4 行中识别 A、T、G 和 C 字符的总数。如果任何行号是 4 的倍数,有一个字符数在 1000 到 3000 范围内,然后我希望它打印该行以及上面的行和下面的两行。
我可以将其分解并在单独的代码行中执行其中的一部分。但是当我有数百万行时,计算时间太长了。我在这里需要一个强大的 awk 命令。一定有足够聪明的 awk 来解决这个问题!
非常小的例子,范围为10 < character count < 40:
输入:
@d0aec33d-ba
TCAGTATGCTTCGTGCAATCAAG
+
-0(''$&"('
@ee487ad3-b71
ACAATGTG
+
""%#0&'+367<677
输出:
@d0aec33d-ba
TCAGTATGCTTCGTGCAATCAAG
+
-0(''$&"('
【问题讨论】:
-
第4行可以有
A、T、G或C以外的字符吗? -
我不知道您的要求是什么意思,我无法想象对它们的任何解释如何从您发布的示例输入中产生您发布的预期输出。如果其他人运气更好,但您可能想澄清您正在尝试做的事情并解释为什么这是预期的输出。
标签: bash awk text-processing