Ersetzen durch sed-Ausdruck

Ersetzen durch sed-Ausdruck

Ich versuche, einen Wert wie

"909,999"

Damit (das Beispiel ersetzt es durch nichts):

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

Aber es funktioniert nicht.

Antwort1

Wenn Sie das Muster ersetzen möchten, können Sie die Zeichen wie von @Kusalananda vorgeschlagen verwenden sed -Eoder maskieren :+

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

"100"

oder

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

"100"

Beachten Sie, dass dies gin diesem Beispiel nicht erforderlich ist, da nur eine Ersetzung pro Zeile vorhanden ist.


Wenn Sie die übereinstimmende(n) Zeile(n) löschen möchten, können Sie dden Musterbereich wie folgt löschen:

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

verwandte Informationen