我有一個文件(test.bed),看起來像這樣(這可能不是被製表分隔):如何分割AWK場正確
chr1 10002 10116 id=1;frame=0;strand=+; 0 +
chr1 10116 10122 id=2;frame=0;strand=+; 0 +
chr1 10122 10128 id=3;frame=0;strand=+; 0 +
chr1 10128 10134 id=4;frame=0;strand=+; 0 +
chr1 10134 10140 id=5;frame=0;strand=+; 0 +
chr1 10140 10146 id=6;frame=0;strand=+; 0 +
chr1 10146 10182 id=7;frame=0;strand=+; 0 +
chr1 10182 10188 id=8;frame=0;strand=+; 0 +
chr1 10188 10194 id=9;frame=0;strand=+; 0 +
chr1 10194 10200 id=10;frame=0;strand=+; 0 +
我想產生下面的輸出(這應該是製表分隔):
chr1 10002 10116 id=1 0 +
chr1 10116 10122 id=2 0 +
chr1 10122 10128 id=3 0 +
chr1 10128 10134 id=4 0 +
chr1 10134 10140 id=5 0 +
chr1 10140 10146 id=6 0 +
chr1 10146 10182 id=7 0 +
chr1 10182 10188 id=8 0 +
chr1 10188 10194 id=9 0 +
chr1 10194 10200 id=10 0 +
我試圖用下面的代碼:
awk 'OFS="\t" split ($0, a, ";"){print a[1],$5,$6}' test.bed
但後來我得到:
chr1 10002 10116 id=1 40 4+
chr1 10116 10122 id=2 40 4+
chr1 10122 10128 id=3 40 4+
chr1 10128 10134 id=4 40 4+
chr1 10134 10140 id=5 40 4+
chr1 10140 10146 id=6 40 4+
chr1 10146 10182 id=7 40 4+
chr1 10182 10188 id=8 40 4+
chr1 10188 10194 id=9 40 4+
chr1 10194 10200 id=10 40 4+
我在做什麼錯?不知何故,數字「4」被添加到最後兩個字段。我認爲數字'4'在某種程度上可能與第4場中的分裂有關,但是,我嘗試生成一個類似的文件,它是第3場被分割,仍然有數字'4'被添加到最後兩個領域。我對'awk'比較陌生,所以我猜這是語法錯誤。任何幫助,將不勝感激。
嘗試'sed的 'S /;幀= 0;鏈= +; //'' – kev 2013-05-14 09:21:55