Jak mogę dopasować białe znaki w sed? W moich danych chcę dopasować wszystkie 3+ kolejne białe znaki (tabulator) i zastąpić je 2 spacjami. Jak można to zrobić?
sed
whitespace
Peter Smit
źródło
źródło
sed
musiałem korzystać,[[:space:]]
ponieważ\s
nie działało dla mnie. Być może\s
jest GNU sed rozszerzenie?[[:space:]
jednego można użyć,[[:blank:]]
który pasuje tylko do poziomych tabulatorów i spacji (ale bez znaków nowej linii, tabulatorów pionowych itp.).Działa to w systemie MacOS 10.8:
źródło
sed "s/[[:space:]]\+/ /g"
dopasować jedną lub więcej spacji.-E
flagę.Niektóre starsze wersje sed mogą nie rozpoznawać tokenów jako białych znaków. W takim przypadku możesz dopasować ciąg jednej lub więcej spacji i tabulatorów do „[XZ] [XZ] *”, gdzie X to spacja, a Z to tab.
źródło
źródło
sed
dowolnego systemu? Jeśli nie, warto wspomnieć, gdzie działa to w podobny sposób, jak inne odpowiedzi, tak więc znamy ograniczenia i gdzie może to nie przynieść zamierzonego rezultatu.