Mantenha os caracteres antes e depois de um caractere específico

1

Eu quero manter os personagens antes e depois de um caractere específico (_ neste caso). Eu tentei cortar e sed, mas então eu removi a parte antes do personagem ou depois do personagem.

Minha saída é assim

7_38    98.97
7_37    98.59
7_36    98.79
7_35    98.93
7_34    98.57
7_33    99.70
7_32    99.13

E eu quero excluir o número depois de '_' e manter a segunda coluna em uma saída como essa

7   98.97
7   98.59
7   98.79
7   98.93
7   98.57
7   99.70
7   99.13
    
por Gravel 26.06.2017 / 12:48

4 respostas

1

Parece que você deseja excluir _ e todos os caracteres não em branco depois disso, então:

sed 's/_[^[:blank:]]*//' < file
    
por 26.06.2017 / 12:50
0

Você tentou usar o awk? Isso deve levá-lo aonde você quer ir:

awk '/_/ {gsub("_.*","",$1); print}' < input.txt

    
por 26.06.2017 / 12:52
0

Com a função awk sub :

awk '{ sub("_.*","",$1) }1' OFS='\t' file

A saída:

7   98.97
7   98.59
7   98.79
7   98.93
7   98.57
7   99.70
7   99.13
    
por 26.06.2017 / 13:00
0

Você pode usar vários caracteres como separadores de campo (espaço e sublinhado) e somente imprimir os campos 1 e 3:

awk -F'_| +' '{print($1,$3)}' file
    
por 26.06.2017 / 13:16