Unix。在具有不同分隔符的 2 个特定列之间更改分隔符

Unix. Change separator between 2 specific columns that have a different separator

我有一个包含 6 列的巨大 .txt 文件 A。前 5 列由制表符分隔,但第 5 列和第 6 列由白色 space 分隔。某些列缺少元素。使用 Unix,我如何生成另一个文件 B.txt,其中第 5 列和第 6 列由制表符分隔?

A.txt

1   886620  rs201016776 T   A 1:886620-TG
1   879576  rs115979567 C   T
1   886817  rs111748052;rs10465241  C   CATTTT  JHU_1.886816
1   889255  rs150003341 C   T Variant37585
1   891659  rs116557519 G   A JHU_1.891658

B.txt

1   886620  rs201016776    T    A    1:886620-TG
1   879576  rs115979567    C    T
1   886817  rs111748052;rs10465241    C    CATTTT    JHU_1.886816
1   889255  rs150003341    C    T    Variant37585
1   891659  rs116557519    G    A    JHU_1.891658

使用column -t inputFile

 $ column -t A.txt > B.txt

如果使用 columntabular 形式不起作用,可以使用 awk:

明确说明 tab
 $ awk '{print "\t""\t""\t""\t""\t""\t"}' A.txt > B.txt

你可以试试 gnu sed

sed 's/[[:blank:]]/\t/g' A.txt > B.txt