Ersetzen eines Zahlenblocks in sed

Ersetzen eines Zahlenblocks in sed

Ich spiele jetzt schon eine Weile damit herum und komme einfach nicht dahinter. Ich versuche, alle Zahlen in einer Datei durch ein einzelnes # zu ersetzen.

Klingt einfach und sollte es auch sein, aber ich komme nicht dahinter. Für jede Hilfe wäre ich dankbar.

Was ich bisher habe (aber nicht funktioniert) ist:

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

Die Ausgabe, die ich erwarte, ist:

fdsafdsa # dsafdas

Aber sed gibt mir dieselbe Zeichenfolge zurück, ohne dass etwas ersetzt wurde.

Irgendwelche Hinweise?

Antwort1

Du brauchst das nicht +. Verwende einfach Folgendes:

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

[0-9]sucht bereits nach allen Ziffern und ersetzt jede einzelne durch #.


Da +es sich um eine erweiterte Syntax handelt, können Sie auch Folgendes tun:

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

den gesamten Ziffernblock zu ersetzen durcheins #.

verwandte Informationen