消除制表符分隔的txt文件中两个字段之间的制表符分隔

时间:2013-09-21 22:27:24

标签: gawk

我试图消除(巨大的)制表符分隔文本文件中两个字段之间的制表符分隔。 我的数据如下:

rs12345 8000    A   B
rs67890 8000    B   B
rs54321 8000    A   A
...

我想把它变成:

rs12345 8000    AB
rs67890 8000    BB
rs54321 8000    AA
...

我想要合并的两个列的右边有几个其他列(不需要修改)。

非常感谢任何能提供帮助的人。

卢卡

2 个答案:

答案 0 :(得分:2)

以下应该有效(使用bash)。它将第三个字段设置为第三个和第四个字段的连接值,并将第四个字段向左移动一个。

awk -F$'\t' -v OFS=$'\t' '{$3=$3$4;for(i=4; i<NF; ++i) $i=$(i+1);NF=NF-1;print}' 

答案 1 :(得分:0)

cat file
rs12345 8000    A       B       test    2332
rs67890 8000    B       B       ew      45
rs54321 8000    A       A       dfdfg   34

设置$ 3到$ 3 $ 4并删除$ 4和额外标签

awk '{$3=$3$4;$4="";sub("\t\t","\t")}1' OFS="\t" file
rs12345 8000    AB      test    2332
rs67890 8000    BB      ew      45
rs54321 8000    AA      dfdfg   34