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個字段 –