Como remover um caractere recorrente de uma coluna?

6

Eu tenho dados:

33305:1      0.045 
33406:1      0.432  
22294:1      0.345
28364:1      0.354

E eu quero remover o :1 da coluna 1 em todas as linhas; eu usaria o gsub para isso?

    
por A.M16 23.10.2017 / 18:29

3 respostas

7

Para substituir um único :1 no campo 1:

awk '{sub(":1", "", $1); print}' < input

Para excluir os dois últimos caracteres do campo 1, independentemente do que eles sejam:

awk '{$1=substr($1, 1, length($1)-2); print}' < input

A função gsub substituirá todas as instâncias da string ; já que sua entrada de amostra tem apenas uma string, usar sub seria equivalente a usar gsub.

    
por 23.10.2017 / 18:38
4

Para o seu caso simples - sed seria suficiente:

sed 's/:1//' file
    
por 23.10.2017 / 18:34
2

Pequena variação no tema de awk com subutilização : como separador para campos, e isso fará com 1 0.045 a coluna 2. Agora tudo que você precisa fazer é se livrar do caractere principal

$ awk -F':' '{sub(/^[[:digit:]]/," ",$2);print}' input.txt                  
33305        0.045 
33406        0.432  
22294        0.345
28364        0.354
    
por 23.10.2017 / 19:25

Tags