gpt4 book ai didi

linux - 如何从 gz 文件中提取特定文本?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:43:25 25 4
gpt4 key购买 nike

我需要从我的 fastq.gz 数据中提取 5 到 11 个字符,这个数据对于在 R 中运行来说太大了。所以我想知道我是否可以直接在 Linux 命令行中执行此操作?fastq 文件如下所示:

@NB501399:67:HFKTCBGX5:1:11101:13202:1044 1:N:0:CTTGTA
GAGGTNACGGAGTGGGTGTGTGCAGGGCCTGGTGGGAATGGGGAGACCCGTGGACAGAGCTTGTTAGAGTGTCCTAGAGCCAGGGGGAACTCCAGGCAGGGCAAATTGGGCCCTGGATGTTGAGAAGCTGGGTAACAAGTACTGAGAGAAC
+
AAAAA#EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEAEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEAAAEEEEEEEEEEEEEEEEAEEEEEEEEEEEEEEAEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEAE6

@NB501399:67:HFKTCBGX5:1:11101:1109:1044 1:N:0:CTTGTA
TAGGCNACCTGGTGGTCCCCCGCTCCCGGGAGGTCACCATATTGATGCCGAACTTAGTGCGGACACCCGATCGGCATAGCGCACTACAGCCCAGAACTCCTGGACTCAAGCGATCCTCCAGCCTCAGCCTCCCGAGTAGCTGGGACTACAG
+

而我只想提取位于序列部分的第5到11个字符(第一个是TNACGG,第二个是CNACCT)并将其制成一个新的txt文件。我可以这样做吗?

最佳答案

您可以将 GNU sed 与 zcat 一起使用:

zcat fastq.gz | sed -n '2~5{s/.\{4\}\(.\{6\}\).*/\1/;p}'
  • -n 表示默认不打印行
  • 2~5 表示从第 2 行开始,每五行匹配一次
  • 当“地址”匹配时,替换记住\1中的第五到第十个字符并用它替换整行,p打印结果

关于linux - 如何从 gz 文件中提取特定文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53780349/

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