“caracteres extras após o comando” no comando sed a

1
#!/bin/bash
SVG=$1
CSV=$2

for p in "$CSV"; do
LINEA=$(cut -d',' -f1 $p | sed '1d')
LINEB=$(cut -d',' -f2 $p | sed '1d')
if grep -iq "$LINEA" "$SVG"; then
sed '/g id=\"..\"/a style=\"fill:'"$LINEB"';\"' $SVG > temp.svg
else
echo "ERROR"
fi
done

Quando executo este script com dois arquivos, recebo o seguinte erro:

sed: -e expression #1, char 66: extra characters after command
    
por M-Reda Daoudi 29.11.2015 / 23:23

1 resposta

2

alguns sed s irão tolerar um comando [aic] que não é imediatamente seguido por uma nova linha de escape com barra invertida e então todos os text relevantes como :

sed '/address/atext'

... e até mesmo para aqueles que fazem tolerar sem a nova linha de escape, o que eles podem fazer com o espaço em branco inicial também é específico da implementação, então ...

sed '/address/a text'

... pode ser o mesmo que ...

sed '/address/atext'

... o modo portátil e padronizado para escrever qualquer um deles é ...

sed '/address/a\
text and embedded newline\
more appended text
/next command/...'
    
por 30.11.2015 / 00:03