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

Jak dopasować białą plamę w sedzie?

Jak dopasować białą plamę w sedzie? W moich danych chcę dopasować wszystkie 3+ kolejne białe znaki (spacja w zakładce) i zastąpić je 2 spacjami. Jak można to zrobić?

Odpowiedzi (4)

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

Klasa znaków \s będzie pasować do białych znaków <tab> i <space>.

Na przykład:

$ sed -e "s/\s\{3,\}/ /g" inputFile

zastąpi każdy ciąg co najmniej 3 białych znaków dwoma spacjami.

  • *

REMARK: Dla zgodności z POSIX-em, użyj klasy znaków [[:space:]] zamiast \s, ponieważ jest to rozszerzenie GNU sed. Zobacz specyfikacje POSIX dla sed i BREs .

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

To działa na MacOS 10.8:

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

Niektóre starsze wersje sedanów mogą nie uznawać ich za żeton pasujący do białej przestrzeni. W takim przypadku można dopasować sekwencję jednej lub więcej spacji i zakładek z “[XZ][XZ]*”, gdzie X jest spacją, a Z zakładką.

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