我想在制表符分隔文件中获取第11列的值。 此返回值是多个值,使用:as seperator。
example result from cat myFile | cut -d':' :
.:7:.:2:100:.
我现在想要在:seperator上拆分此文件并检索第二个值。
这可以使用cut -d':' -f2
我的问题: 如何创建一个语句,返回我的文件中第11列第二部分中值为5或更多的所有行?
输入文件(2行):
chr1 4396745 bnd_549 a a[chr9:136249370[ 100 PASS SVTYPE=BND;MATEID=bnd_550;EVENT=transl_inter_1022;GENE=; GT:AD:DP:SS:SSC:BQ .:.:.:.:.:. .:7:.:2:100:.
chr1 6315381 bnd_551 c ]chr9:68720182]c 100 PASS SVTYPE=BND;MATEID=bnd_552;EVENT=transl_inter_9346;GENE=; GT:AD:DP:SS:SSC:BQ .:.:.:.:.:. .:3:.:2:100:.
预期产出:
chr1 4396745 bnd_549 a a[chr9:136249370[ 100 PASS SVTYPE=BND;MATEID=bnd_550;EVENT=transl_inter_1022;GENE=; GT:AD:DP:SS:SSC:BQ .:.:.:.:.:. .:7:.:2:100:.
输出(awk -F:'$ 11> = 5'example.sorted.vcf): 没有输出
答案 0 :(得分:4)
这应该有用(虽然未经测试,请提供输入和预期输出):
awk '{split($11,ary,/:/); if(ary[2]>=5) print}' myFile
答案 1 :(得分:0)
您还可以使用空格或冒号作为字段分隔符:
awk -F ':|[[:blank:]]+' '$23 > 5' filename