Substituir '-' char usando sed

0

Eu tenho um arquivo de texto, bastante semelhante a este:

    JACK     BLACK 123456   -1245368 - 
 BRIDGET       RED   1245     548425 + 
  JOHNNY    HOMUSS  55482      -4325 - 

Eu queria usar o comando sed para substituir o caractere - por um ' ' um em branco na seção do último número, mas minha saída seria:

    JACK     BLACK 123456    1245368 - 
 BRIDGET       RED   1245     548425 + 
  JOHNNY    HOMUSS  55482       4325 - 

Estou usando este, mas é claro que não está funcionando, porque ele substitui todos os caracteres - no arquivo de texto:

sed -e 's/-/ /g' old.out > new.out

isso é possível?

    
por abierto 29.04.2014 / 09:24

1 resposta

2

Se os seus dados estiverem em um formato semelhante, ou seja, somente a última coluna contendo dígitos poderá conter - , você poderá simplesmente remover g da expressão sed :

sed 's/-/ /g' old.out > new.out

Se você quiser remover - de todos os números do arquivo, verifique se - é seguido por um dígito:

sed 's/-\([0-9]\)/ /' old.out > new.out

Se você quiser remover - da última coluna que contém um dígito, diga:

sed 's/-\([0-9]\{1,\}\)\([^0-9]*\)$/ /' old.out > new.out
    
por 29.04.2014 / 09:50