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 -E
ou 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 g
nã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 d
para excluir o espaço padrão:
$ printf '"123.456"\n"909,999"\n"100"\n' | sed '/"[0-9]\+,[0-9]\+"/d'
"123.456"
"100"