Substituir um bloco de números em sed

4

Eu tenho trabalhado com isso por um tempo agora e não consigo entender. O que estou tentando fazer é substituir todos os números em um arquivo por um único #.

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

O que eu 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?

    
por acidtv 02.05.2012 / 11:10

1 resposta

7

Você não precisa do + . Apenas use o seguinte:

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

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

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

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

para substituir o bloco inteiro de dígitos por um # .

    
por 02.05.2012 / 11:12