我有一些看起来像这样的数据。它分为四行。每个 block 都以 @
字符开头。
@SRR037212.1 FC30L5TAA_102708:7:1:741:1355 length=27
AAAAAAAAAAAAAAAAAAAAAAAAAAA
+SRR037212.1 FC30L5TAA_102708:7:1:741:1355 length=27
::::::::::::::::::::::::;;8
@SRR037212.2 FC30L5TAA_102708:7:1:1045:1765 length=27
TATAACCAGAAAGTTACAAGTAAACAC
+SRR037212.2 FC30L5TAA_102708:7:1:1045:1765 length=27
88888888888888888888888888
我想做的是提取每个 block 的最后一行。产量:
::::::::::::::::::::::::;;8
888888888888888888888888888
请注意, block 的最后一行可能包含任何标准 ASCII 字符
包括 @
。
是否有一种有效的单线方式来做到这一点?
最佳答案
以下 sed 命令将打印模式后的第 3 行:
sed -n '/^@/{n;n;n;p}' file.txt
关于linux - 使用 Sed/AWK/Perl 从 block 中提取第 K 行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5139796/