Sed错误“命令a期望\后跟文本”

时间:2016-05-20 21:56:36

标签: bash sed openscad

这是我的剧本:

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

1 个答案:

答案 0 :(得分:4)

您的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