2010-02-24 11:53:58 +0000 2010-02-24 11:53:58 +0000
232
232
Advertisement

Wie passe ich Leerzeichen in sed an?

Advertisement

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?

Advertisement
Advertisement

Antworten (4)

240
240
240
2010-02-24 12:08:44 +0000

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

70
70
70
2013-08-28 20:28:34 +0000

Dies funktioniert unter MacOS 10.8:

sed -E "s/[[:space:]]+/ /g"
14
Advertisement
14
14
2010-04-07 15:12:34 +0000
Advertisement

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.

11
11
11
2014-07-22 14:52:32 +0000
sed 's/[\t]*/"space or tab"/'
Advertisement