0
我不能分开我的文件:独立的8场
chr2 215672546 rs6435862 G T 54.00 LowDP;sb DP=10;TI=NM_000465;GI=BARD1;FC=Silent ... ...
我想打印头七场和第八场仅打印DP=10
和GI=BARD1
。 DP
在GI
信息总是在第8场。字段继续(...),所以第8个字段不是最后一个。
我知道如何提取第八场:
awk '{print $8}' PLZ-10_S2.vcf | awk -F ";" '/DP/ {OFS="\t"} {print $1}'
当然
如何提取前七场,但共同探讨如何管?所有字段之间是tab
。
我不知道,但我希望'$ 8 = SUBSTR($ 8,1,长度($ 8) - 1)'可以给你一个运行时错误,如果没有DP和GI出现在$ 8中,因为您将从空字符串的长度中减去1,我希望该值为零,如果是,则尝试使用'-1'作为substr()的第三个arg。 –
@EdMorton:我刚刚使用输入的修改版本对它进行了测试,它不会抱怨(或者像'substr($ 80,1,-1)'')这样的东西。根本不打印任何东西。然后在输出中会有两个加入的'tabs',并且字段eigth将是当前的第九个,但是这是一个可能的错误,我希望OP会知道如何处理(或者至少知道如何在另一个线程中询问:-) – Birei
我只是尝试了几个不同的awks,他们也没有抱怨,除了用'--lint'标志产生'gawk:cmd的gawk。行:1:警告:substr:长度-1是<= 0'。我不知道所有的awks是否会以相同的方式运行,POSIX规范可能会说一些关于它的内容,idk。输出中的两个连接的选项卡不是问题,它们之间仍然有一个空的第8个字段 –