Substitua um bloco de números em sed

Substitua um bloco de números em sed

Estou mexendo nisso há um tempo e não consigo entender. O que estou tentando fazer é substituir todos os números de um arquivo por um único #.

Parece simples, e deveria ser, mas não consigo entender. Qualquer ajuda seria apreciada.

O que tenho até agora (mas não funciona) é:

echo "fdsafdsa 32432 dsafdas" | sed 's/[0-9]+/#/g'

A saída que espero é:

fdsafdsa # dsafdas

Mas sed me dá a mesma string sem nada substituído.

Alguma pista?

Responder1

Você não precisa do +. Basta usar o seguinte:

echo "fdsafdsa 32432 dsafdas" | sed 's/[0-9]/#/g'

[0-9]já corresponderá a todos os dígitos e substituirá cada um por #.


Como +é uma sintaxe estendida, você também pode fazer:

echo "fdsafdsa 32432 dsafdas" | sed -E 's/[0-9]+/#/g'

para substituir todo o bloco de dígitos porum #.

informação relacionada