existe uma maneira que eu possa inserir um caractere em uma linha ou um caractere substituto e arbitrário consigo mesmo mais algum outro carachter (s) em sed?

0

como se eu tivesse uma série de números que constituem um número de telefone e são assim

##########

e eu quero formatá-los como:

### - ### - ####

inserir apenas coloca em novas linhas, e eu não sei como fazer dizer uma expressão como

sed (s / [0-9] / TheNumberIFound - /) // 3 // 6

Então, há alguma maneira que eu possa pedir ao sed para adicionar algo depois de um padrão correspondente ou para substituir o padrão correspondente por ele mesmo, além de algum outro caractere?

    
por arly803 17.10.2014 / 18:49

1 resposta

1
$ echo "1234567890" | sed -re 's/([0-9]{3})([0-9]{3})([0-9]{4})/--/g'
123-456-7890
  • [0-9] corresponde a qualquer dígito em uma posição no número de telefone.
  • {3} informa ao sed para que corresponda ao padrão prefixado, 3 times.
  • O ( e ) (parênteses) em torno das três repetições desses registros registram os números correspondentes em "memórias"
    as "memórias" são então "recuperadas" com para o primeiro parênteses, para o segundo e assim por diante.
  • Portanto, -- faz o seu número de telefone reformatado.
  • Adicione o g no final para fazer o sed fazer isso mais de uma vez por linha.

Intencionalmente tentou manter o idioma no nível 'noob' ;-p

    
por 17.10.2014 / 19:02