awk / sed + substitui apenas o segundo char por um espaço

2

por favor, conselhos como remover apenas o segundo "." caractere do número da versão com awk

Eu preciso ajustar a sintaxe do Linux & Solaris

Eu escrevo o

  sed "s'/\./ /g'" - 

mas esta sintaxe remove todos os "." do número da versão

por exemplo (número da versão anterior)

 34.34.55.4

após a manipulação do sed

 34.34 55.4
    
por Eytan 16.02.2012 / 08:50

3 respostas

3
echo -e '1.2.3.4\n2.3.4\n5.6.7.8' | sed 's/\([^.]*\.[^.]*\)\./ /'

A parte entre chaves irá combinar "algo sem ponto, um ponto, algo sem ponto". \ 1 no texto de substituição se referirá a essa submissão.

No entanto, a outra solução dada é sem dúvida muito mais elegante; -)

    
por 16.02.2012 / 09:39
2
$ sed 's/\./ /2' <<<'34.34.55.4'
34.34 55.4
    
por 16.02.2012 / 08:52
2

Usando GNU Awk :

Comando:

awk '$0 = gensub( /\./, " ", 2 )' <<<"34.34.55.4"

Saída:

34.34 55.4
    
por 16.02.2012 / 09:38