Odpowiedzi:
Ponieważ sed nie jest perlem - wyrażenia regularne sed nie mają \dskrótu:
sed 's/[[:digit:]]\+\.//g'
tutaj znajduje się dokumentacja wyrażeń regularnych .
/[[:digit:]]*\. /dopasuje ciąg, foo.ponieważ dopuszczasz zero cyfr. Jeśli chcesz użyć jednego lub więcej, \+jak pokazano
Dwa problemy:
sednie obsługuje \d. Użyj [0-9]lub [[:digit:]].
+Należy odwrotnym ukośnikiem, aby uzyskać specjalne znaczenie: \+.
interpret regular expressions as extended (modern) regular expressions rather than basic regular expressions (BRE's).Niestety, nie pomaga to z problemem \ d ...
-Enie działa dla GNU sed, -rzamiast tego używa .
sedto, że jest do bani, jeśli chodzi o przenośność ...
-Ena BSD sed i -rGNU sed), w BSD sed, ani +nor \+(to samo z ?) w ogóle nie będzie działać, podczas gdy w GNU sed możesz zachęć ich do pracy z odwrotnym ukośnikiem. Stąd powszechna rekomendacja używania rozszerzonego wyrażenia regularnego w skryptach
Strona man sed odwołuje się do strony man re_format. To czyni 2 rozróżnienia: (1) przestarzałe w porównaniu do rozszerzonych wyrażeń regularnych; (2) nieulepszone kontra ulepszone wyrażenia regularne. Możliwe są wszystkie 4 kombinacje. Istnieje wsparcie zarówno dla przestarzałych, jak i rozszerzonych, ale w obu przypadkach tylko dla nieulepszonych. Operator \ d jest funkcją ulepszonych wyrażeń regularnych, dlatego nie jest obsługiwany przez sed.