Substituindo pela expressão sed

Substituindo pela expressão sed

Estou tentando obter um valor como

"909,999"

Com isto (o exemplo está substituindo por nada):

sed 's/["][0-9]+[,][0-9]+["]//g'

Mas não está funcionando.

Responder1

Se quiser substituir o padrão, você pode usar sed -Eou escapar dos +caracteres conforme sugerido por @Kusalananda:

$ printf '"123.456"\n"909,999"\n"100"\n' | sed -E 's/"[0-9]+,[0-9]+"//g'
"123.456"

"100"

ou

$ printf '"123.456"\n"909,999"\n"100"\n' | sed 's/"[0-9]\+,[0-9]\+"//g'
"123.456"

"100"

Observe que o gnão é necessário neste exemplo, pois há apenas uma substituição por linha.


Se você quiser excluir a(s) linha(s) correspondente(s), você pode usar dpara excluir o espaço padrão:

$ printf '"123.456"\n"909,999"\n"100"\n' | sed '/"[0-9]\+,[0-9]\+"/d'
"123.456"
"100"

informação relacionada