
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 -E
oder 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 g
in 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 d
den Musterbereich wie folgt löschen:
$ printf '"123.456"\n"909,999"\n"100"\n' | sed '/"[0-9]\+,[0-9]\+"/d'
"123.456"
"100"