Wie passe ich Leerzeichen in sed an?
Wie kann ich Leerzeichen in sed anpassen? In meinen Daten möchte ich alle 3+ aufeinanderfolgenden Leerzeichen (Tabulatorzeichen) abgleichen und durch 2 Leerzeichen ersetzen. Wie kann dies erreicht werden?
Wie kann ich Leerzeichen in sed anpassen? In meinen Daten möchte ich alle 3+ aufeinanderfolgenden Leerzeichen (Tabulatorzeichen) abgleichen und durch 2 Leerzeichen ersetzen. Wie kann dies erreicht werden?
Die Zeichenklasse \s
entspricht den Whitespace-Zeichen <tab>
und <space>
.
Zum Beispiel:
$ sed -e "s/\s\{3,\}/ /g" inputFile
ersetzt jede Folge von mindestens 3 Whitespaces durch zwei Leerzeichen.
REMARK: Verwenden Sie für die POSIX-Konformität die Zeichenklasse [[:space:]]
anstelle von \s
, da letztere eine GNU sed-Erweiterung ist. Siehe die POSIX-Spezifikationen für sed und BREs
Dies funktioniert unter MacOS 10.8:
sed -E "s/[[:space:]]+/ /g"
Einige ältere Versionen von sed erkennen \s möglicherweise nicht als White Space Matching Token. In diesem Fall können Sie eine Folge von einem oder mehreren Leerzeichen und Tabulatoren mit ‘[XZ][XZ]*“ abgleichen, wobei X ein Leerzeichen und Z ein Tabulator ist.