【发布时间】:2013-10-30 18:25:06
【问题描述】:
它不是制作脚本,而是根据第一列中的独特元素,用一个衬垫来随机播放一个大的制表符分隔的文本文件。这意味着,对于第一列中的每个唯一元素,行数将相等并由用户指定。
有两种输出可能性,保持行顺序或随机行顺序。
输入:
chr1 3003204 3003454 * 37 +
chr1 3003235 3003485 * 37 +
chr1 3003148 3003152 * 37 -
chr1 3003461 3003711 * 37 +
chr11 71863609 71863647 * 37 +
chr11 71864025 71864275 * 37 +
chr11 71864058 71864308 * 37 -
chr11 71864534 71864784 * 37 +
chrY 90828920 90829170 * 23 -
chrY 90829096 90829346 * 23 +
chrY 90828924 90829174 * 23 -
chrY 90828925 90829175 * 23 -
输出(每个类别 1 行 - 由用户定义) 输出1(随机 - 行顺序会改变):
chr1 3003235 3003485 * 37 +
chr11 71863609 71863647 * 37 +
chrY 90828925 90829175 * 23 -
Output1(随机 - 将保持行顺序):
chr1 3003204 3003454 * 37 +
chr11 71863609 71863647 * 37 +
chrY 90828920 90829170 * 23 -
我尝试在第一列上使用sort -u 和cut 来获取唯一元素,然后为每个元素运行grep 和head 的组合以生成输出文件,可以使用shuf 随机生成输出文件,可能会有更好的解决方案,因为文件可能会超过 5000 万行。
干杯
【问题讨论】:
-
+1 有趣的问题。
标签: linux sorting text random shuffle