Sed ошибка "команда ожидает \ сопровождается текстом"
Вот мой сценарий:
openscad $1 -D generate=1 -o $1.csg 2>&1 >/dev/null |
sed 's/ECHO: \"\[LC\] //' |
sed 's/"$//' |
sed '$a;' >./2d_$1
Этот вывод:
sed: 1: "$a;": command a expects \ followed by text
2 ответа
Решение
Ваша версия sed
это не GNU sed
что позволяет то, что вы используете. Вам нужно написать:
openscad $1 -D generate=1 -o $1.csg 2>&1 >/dev/null |
sed 's/ECHO: \"\[LC\] //' |
sed 's/"$//' |
sed '$a\
;' >./2d_$1
Также три копии sed
немного чрезмерно (чтобы быть вежливым); достаточно одного:
openscad $1 -D generate=1 -o $1.csg 2>&1 >/dev/null |
sed -e 's/ECHO: \"\[LC\] //' \
-e 's/"$//' \
-e '$a\' \
-e ';' >./2d_$1
или же:
openscad $1 -D generate=1 -o $1.csg 2>&1 >/dev/null |
sed -e 's/ECHO: \"\[LC\] //' -e 's/"$//' -e '$a\' -e ';' >./2d_$1
В MacOS при попытке использовать команду «a» работает следующее:
sed '/REGEX/a \
HELLO_WORLD \
HOW_ARE_YOU \
' <filePath>