linux - 使用 Sed/AWK/Perl 从 block 中提取第 K 行

标签 linux perl bash sed awk

我有一些看起来像这样的数据。它分为四行。每个 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/

相关文章:

perl - 在 Perl 5 中获取 switch/case 行为

linux - 通过 PID 终止进程的 Bash 脚本

linux - 意外的行尾 - dos2unix 不会修复它

c - X11/xlib.h 给我 XClearWindow 错误

linux - 如何在不修改和预编译 linux 内核的情况下替换静态内核函数

arrays - 在 perl 数组中移动元素

perl - 每当文本小部件中的光标位置发生变化时自动调用子程序

python - 如何使用不同版本的 Python 运行 Jupyter Notebook?

Linux weka 和大文件

mysql - 使用shell脚本在mysql中插入数据