我有一个看起来像这样的文件(test.bed)(可能不是制表符分隔的):
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'相当陌生,所以我猜这是语法错误。任何帮助,将不胜感激。