Sed 错误 "command a expects \ followed by text"

Sed error "command a expects \ followed by text"

这是我的脚本:

openscad  -D generate=1 -o .csg 2>&1 >/dev/null |
sed 's/ECHO: \"\[LC\] //' |
sed 's/"$//' |
sed '$a;' >./2d_

那个输出:

sed: 1: "$a;": command a expects \ followed by text

您的 sed 版本不是允许您使用的 GNU sed。你需要写:

openscad  -D generate=1 -o .csg 2>&1 >/dev/null |
sed 's/ECHO: \"\[LC\] //' |
sed 's/"$//' |
sed '$a\
;' >./2d_

另外,三份sed有点过分了(客气一点);一个就够了:

openscad  -D generate=1 -o .csg 2>&1 >/dev/null |
sed -e 's/ECHO: \"\[LC\] //' \
    -e 's/"$//' \
    -e '$a\' \
    -e ';' >./2d_

或:

openscad  -D generate=1 -o .csg 2>&1 >/dev/null |
sed -e 's/ECHO: \"\[LC\] //' -e 's/"$//' -e '$a\' -e ';' >./2d_