[Fedora-users-br] sed

Leg leg em terra.com.br
Sáb Out 13 02:03:32 UTC 2007


Alberto Vieira Ferreira Monteiro wrote:
> n=42
> echo "00000$n:" | sed -n 's/*([0-9]{5}):/\1/p'
> 
> devia funcionar, mas não funciona. Tentei acrescentar vários \, sem sucesso.

A dica do printf é prática, mas pelo desafio de fazer com sed:

Você esqueceu o caractere antes do asterisco no inicio da RE. Tambem não 
  precisa daquele ":".

$ echo 00000001 | sed -e 's/.*\([0-9]\{5\}\)/\1/g'
00001
$ echo 000000012 | sed -e 's/.*\([0-9]\{5\}\)/\1/g'
00012
$ echo 0000000123 | sed -e 's/.*\([0-9]\{5\}\)/\1/g'
00123
$ echo 00000001234 | sed -e 's/.*\([0-9]\{5\}\)/\1/g'
01234
$ echo 000000012345 | sed -e 's/.*\([0-9]\{5\}\)/\1/g'
12345

Prefiro evitar o -n, mas ficaria assim:

sed -n 's/.*\([0-9]\{5\}\)/\1/p'




Mais detalhes sobre a lista de discussão Fedora-users-br