cant + não funciona no solaris

1

Eu tento usar uma linha sed com + em uma máquina Solaris e em uma máquina Linux.

no Solaris sed não remove as strings até o primeiro número como eu quero:

   solaris:/ ROOT > echo "Release............5.3.7.1-12"  | sed 's/[^0-9]\+//'

   Release............5.3.7.1-12

no Linux eu recebo os resultados esperados:

  linux tmp]# echo "Linux Release............5.3.7.1-12"  | sed 's/[^0-9]\+//'

  5.3.7.1-12
  • Por que essa sintaxe de sed não está funcionando no Solaris?

  • O que preciso alterar na sintaxe para que seja executado no Solaris?

por Eytan 10.01.2012 / 16:55

1 resposta

0

Normalmente, o escape do caractere + ( \+ ) resulta em um literal + , não um modificador. Este não é o caso de sed no Ubuntu 10.04, mas pode não estar no Solaris.

Meu melhor palpite é que isso é específico da implementação, então sed 's/[^0-9]\+//' pode funcionar.

Você também pode tentar sed -r 's/[^0-9]\+//' (onde -r significa expressões regulares estendidas ). Funciona no Ubuntu 10.04.

    
por 10.01.2012 / 17:06