232
232
Hoe kan ik witruimte in sed matchen?
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?
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?
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 .
Dit werkt op MacOS 10.8:
sed -E "s/[[:space:]]+/ /g"
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.