В sed символ после s
используется в качестве разделителя. Sla sh /
является стандартом.
Символы /
могут быть равномерно заменены любым другим отдельным символом в любой данной команде s
.
Сценарий Arduino, вероятно, использует альтернативный разделитель, чтобы избежать косой черты в $SCRIPT_PATH
, которая также вряд ли будет содержать запятые. Сравните:
s/<BINARY_LOCATION>/\/some\/path\/arduino/
s,<BINARY_LOCATION>,/some/path/arduino,
Также можно использовать запятую:
- для создания диапазона адресов
- например, удалить строки 2-5:
2,5d
- в регулярном выражении между фигурными скобками для создания "диапазона повторения"
- , например, совпадение 2-5
a
s: /a\{2,5\}/
, 5 или более: /a\{5,\}/
Кстати, вторая половина вашего пробоя еще далеко. Вот исправление:
- В оболочке строки в двойных кавычках подвергаются расширению параметров, поэтому
${SCRIPT_PATH}
представляет переменную <>
- Это буквально. Вы думаете о \<\>
g
- "global" - флаг s
:
Применить замену все соответствует регулярному выражению , а не только первому.