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

Hoe kan ik witruimte in sed matchen?

Advertisement

Hoe kan ik witruimte in sed matchen? In mijn gegevens wil ik alle 3+ volgende witruimtes (tab spatie) matchen en vervangen door 2 spaties. Hoe kan dit?

Advertisement
Advertisement

Antwoorden (4)

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

De karakterklasse \s komt overeen met de witruimtes <tab> en <space>.

Bijvoorbeeld:

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

vervangen elke reeks van minstens 3 witruimtes door twee spaties.

  • *

REMARK: Gebruik voor POSIX-conformiteit de karakterklasse [[:space:]] in plaats van \s, aangezien dit laatste een GNU sed extensie is. Zie de POSIX-specificaties voor sed en BREs .

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

Dit werkt op MacOS 10.8:

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

Sommige oudere versies van sed herkennen misschien niet als een bijpassende witte ruimte. In dat geval kun je een reeks van een of meer spaties en tabs matchen met ‘[XZ][XZ]*’ waarbij X een spatie is en Z een tab.

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