linux - 您如何以内存有效的方式随机化行?

标签 linux bash unix awk

我有如下所示的文本,大小约为 6gb。我想保持 #CHROM 之前的行不变,但我想打乱 #CHROM 行以下的所有行。是否有内存高效的方法来执行此操作?

##contig=<ID=chrX,length=155270560,assembly=hg19>
##contig=<ID=chrY,length=59373566,assembly=hg19>
##contig=<ID=chrM,length=16571,assembly=hg19>
##reference=file:///dmf/
##source=SelectVariants
#CHROM  POS     ID      REF     ALT     QUAL    FILTER  INFO    FORMAT
chr1    14165   .       A       G       220.12  VQSRTrancheSNP99.90to10
chr1    14248   .       T       G       547.33  VQSRTrancheSNP99.90to10
chr1    14354   .       C       A       2942.62 VQSRTrancheSNP99.90to10
chr1    14374   .       A       G       17.90   VQSRTrancheSNP99.90to10

我想要的结果是这样的:

##contig=<ID=chrX,length=155270560,assembly=hg19>
##contig=<ID=chrY,length=59373566,assembly=hg19>
##contig=<ID=chrM,length=16571,assembly=hg19>
##reference=file:///dmf/
##source=SelectVariants
#CHROM  POS     ID      REF     ALT     QUAL    FILTER  INFO    FORMAT
chr1    14354   .       C       A       2942.62 VQSRTrancheSNP99.90to10
chr1    14248   .       T       G       547.33  VQSRTrancheSNP99.90to10
chr1    14374   .       A       G       17.90   VQSRTrancheSNP99.90to10
chr1    14165   .       A       G       220.12  VQSRTrancheSNP99.90to10

最佳答案

我会按照您的标准拆分文件,在第二个 block 上使用 shuf,然后再次将它们组合在一起。我想不出可以避免 split 的内存高效 wat。

关于linux - 您如何以内存有效的方式随机化行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53636598/

相关文章:

linux - 为 aws ubuntu 服务器 node.js 安装设置 bash 脚本失败

c++ - 哪个浏览器插件框架适用于 Linux 中的所有浏览器

linux - 如何在 unix 中附加一个带有字符串和当前日期的文件名

php - 在 PHP 中获取 Linux 发行版名称

linux - 为什么 docker 容器中的应用程序不重启?

linux - 如何避免使用 gs 输出合并的 pdf 文件的收缩?

bash - Git Bash - cd 命令显示哪个 : no bundle in

linux - 我可以在同一行的 file.txt 上写吗

bash - Unix 一行打印输出

c - 从 C 内存中加载脚本