Какие разделители вы можете использовать в sed?

Обычно мы видим, что люди жалуются наunknown option to s' ошибка вsed когда они хотят использовать шаблон, который содержитsed разделитель.

Например, если мы используем/:

$ var="hel/lo"
$ sed "s/a/$var/g" <<< "haha"
sed: -e expression #1, char 9: unknown option to `s'

Поэтому мы рекомендуем использовать другой разделитель, например|:

$ sed "s|a|$var|g" <<< "haha"
hhel/lohhel/lo

Тем не менее, я хочу знать, каковы возможные разделителиsed может принять ... так как кажется, что это практически любой символ, включая регулярные (*, ?, ....)!

В моемsed (GNU sed) 4.2.2:

$ sed 's/a/b/g' <<< "haha"
hbhb
$ sed 's_a_b_g' <<< "haha"
hbhb
$ sed 's#a#b#g' <<< "haha"
hbhb
$ sed 's$a$b$g' <<< "haha"
hbhb
$ sed 's?a?b?g' <<< "haha"
hbhb
$ sed 's*a*b*g' <<< "haha"
hbhb
$ sed 's-a-b-g' <<< "haha"
hbhb
$ sed 's.a.b.g' <<< "haha"
hbhb
$ sed 'sXaXbXg' <<< "haha"
hbhb
$ sed 'sxaxbxg' <<< "haha"
hbhb
$ sed 's1a1b1g' <<< "haha"
hbhb

Четноеa работает здесь, если он экранирован:

$ sed 'saaabag' <<< "haha"
sed: -e expression #1, char 5: unknown option to `s'
$ sed 'sa\aabag' <<< "haha"
hbhb

Есть ли какие-либо спецификации для этого?

Ответы на вопрос(1)

Ваш ответ на вопрос