【发布时间】:2012-07-24 23:45:31
【问题描述】:
我有一个制表符分隔的文件,其中从第 10-25 列开始,一些值包含“。”特点。我想过滤掉与“。”匹配的行。字符,在此列的列范围内,以便如果在第 10-25 列中找到少于 8 次(即出现少于 50%),则不会打印。
我曾尝试查看类似的帖子,最接近的是用户:lodge (Match lines with pattern n times in the same line) 但是,当我尝试一些命令时,它的行为并没有达到我需要的方式。
例如,下面的代码用点替换了所有内容...虽然我知道这是因为它是全局替换,但它似乎适用于 lodge。
awk '{ if (gsub(/./, ".") >= 8) print }' merged.vcf > test.vcf
这是我的文件的示例(在此示例中我只包含最多第 11 列):
#CHROM POS ID REF ALT QUAL FILTER INFO FORMAT AD0062-C AD0065-C
2L 560 . T C 30.65 PASS AC=3 GT:GQ:PL . .
2L 595 . G T 61.75 PASS AC=11 GT:GQ:PL . 0/1:13:132,0,10
【问题讨论】:
-
你就不能逃避点吗?