To zależy. Ściśle mówiąc, standard zgodny sed należy używać tylko podstawowych wyrażeń regularnych, dla których the standard stany:
Znaki specjalne BRE i konteksty, w których mają swoje szczególne znaczenie, są następujące:
.[\
Okres, z lewej nawias kwadratowy i ukośnik odwrotny muszą być specjalne, z wyjątkiem sytuacji, gdy są używane w wyrażeniu nawiasowym (patrz Wyrażenie wyraŜenia RE). Wyrażenie zawierające "[", które nie jest poprzedzone ukośnikiem odwrotnym i nie jest częścią wyrażenia nawiasowego, tworzy niezdefiniowane wyniki.
Gwiazdka jest specjalna, z wyjątkiem sytuacji, gdy jest używana w nawiasie, jako pierwsza litera całego BRE (po początkowym "^", jeśli występuje) lub jako pierwszy znak z podwyrażeniem (po wstępnym "^", jeśli występuje); zobacz BRES Dopasowane wiele znaków
^
okalającej będzie specjalny stosowany jako kotwicy (patrz BRE Expression kotwienia) lub jako pierwszego znaku wyrażenia wspornika (patrz RD Bracket wyrażenie)
$
dollar- znak jest specjalny, gdy jest stosowany jako kotwica.
Tak więc pełna lista to .[\*^$
, ale kontekst ma znaczenie. Ponadto wiele sed oferuje opcje rozszerzonych wyrażeń regularnych (ERE), które rozszerzają listę i zmieniają kontekst, w którym znaki są specjalne. Na przykład bez grup ERE są tworzone przy użyciu \(
i \)
, ale z ERE (
i )
same są specjalne i muszą być zmienione, aby były dosłownie dopasowane.
Dokumentacja dla sed (i grep) jest tym, czego szukasz. Czego tam nie znalazłeś? – Mat
Widzę tylko przykłady znaków specjalnych, ale nigdy nie jestem pewna, czy jest to pełna lista znaków specjalnych. – mnr
Nie jestem pewien, co masz na myśli przez "znak specjalny", ale w dokumentacji wymieniono wszystko, co możesz zrobić. Nie ma sensu replikować tej dokumentacji tutaj. – Mat