Substituir string na primeira coluna

1

Eu tenho um arquivo que se parece com:

>TCONS_00000066_1     [3    -   170]
>TCONS_00000066_2     [174  -   206]
>TCONS_00000066_3     [2    -   223]
>TCONS_00000066_4     [210  -   281]
>TCONS_00000066_5     [227  -   316]
>TCONS_00000066_6     [1    -   324]
>TCONS_00000066_7     [285  -   338]
>TCONS_00000066_8     [335  -   373]
>TCONS_00000066_9     [342  -   377]
>TCONS_00000066_10    [328  -   465]
>TCONS_00000066_11    [377  -   487]
>TCONS_00000066_12    [469  -   546]
>TCONS_00000066_13    [390  -   551]
>TCONS_00000066_14    [518  -   556]
>TCONS_00000066_15    [537  -   490]
>TCONS_00006042_1     [9    -   62]
>TCONS_00006042_2     [87   -   146]
>TCONS_00006042_3     [150  -   203]
>TCONS_00006042_4     [2    -   220]
>TCONS_00006042_5     [1    -   255]

O arquivo é delimitado por tabulações. Eu quero remover apenas o _1 e _2 .... após cada >TCONS_0000**** . O restante de todas as colunas estará lá como está.

Como:

>TCONS_00000066    [3    -   170]
>TCONS_00000066    [174  -   206]
>TCONS_00000066    [2    -   223]
>TCONS_00000066    [210  -   281]
>TCONS_00000066    [227  -   316]
>TCONS_00000066    [1    -   324]
>TCONS_00000066    [285  -   338]
>TCONS_00000066    [335  -   373]

Nota: cada >TCONS_* contém 8 dígitos, como >TCONS_00000066"..." , >TCONS_00987652"

    
por user106326 18.03.2015 / 06:08

2 respostas

3

Isso deve funcionar para você

cat file.txt | sed 's/\([0-9]\)_[0-9]\+\t/\t/'

Procure por um dígito (nomeado como \ 1) seguido por um sublinhado seguido por um ou mais dígitos seguidos por uma tabulação e substitua por named \ 1 e uma tabulação

    
por 18.03.2015 / 06:21
2

Usando o Awk:

awk -F'[_ ]' '{$3=""}1' file > newfile
    
por 18.03.2015 / 06:16