adiciona tabulação a colunas específicas

0

Eu tenho os seguintes dados que estão espaçados por tabulação, mas descobri que algumas colunas não são. Como se certificar de que os dados estão todos separados por abas?

aqui faz parte dos dados:

rs987435    C   G   1   1   2   1   20
rs345783    C   G   1   1   1   1   01
rs955894    G   T   2   2   2   2   22
rs6088791   A   G   1   0   1   0   22
rs11180435  C   T   1   1   1   1   10
rs17571465  A   T   2   2   2   2   22
rs17011450  C   T   2   2   1   2   22
rs6919430   A   C   2   2   2   2   22
rs2342723   C   T   0   0   0   0   01
rs11992567  C   T   2   2   2   2   22

As colunas a partir da quarta coluna devem ser apenas 0,1,2; como você pode ver, a oitava coluna não é. Eu preciso adicionar a tabulação entre esses números, como posso fazer isso no Linux?

    
por user205023 11.12.2016 / 23:50

2 respostas

2

Como você está usando o Linux, você terá o GNU Sed (ao contrário do BSD Sed), e você pode simplesmente fazer:

sed 's/.$/\t&/' file.txt

Quando estiver satisfeito com a saída que você vê na linha de comando, faça-o "no lugar" (ou seja, salve-o de volta no arquivo) com o sinal -i :

sed -i 's/.$/\t&/' file.txt

O que isto faz é inserir um caractere de tabulação antes do caractere final em cada linha.

    
por 12.12.2016 / 00:02
-1

Substitua todos os espaços por tabulações:

tr -s " " "\t" < datafile
    
por 11.12.2016 / 23:55