#!/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
当我使用两个文件执行此脚本时,出现以下错误:
sed: -e expression #1, char 66: extra characters after command
答案1
一些 sed
s 将容忍一个[aic]
命令后面没有紧跟着反斜杠转义的换行符,然后是所有相关的text
喜欢:
sed '/address/atext'
...甚至对于那些做在没有转义换行符的情况下容忍它,他们可能对前导空格所做的事情也是特定于实现的,所以......
sed '/address/a text'
...结果可能与...相同
sed '/address/atext'
...便携式和标准化编写其中任何一个的方法是......
sed '/address/a\
text and embedded newline\
more appended text
/next command/...'
答案2
的顺序sed标志可能会输出错误extra characters after command
这是错误的:
sed -i fileName -r 's/a/b/g'
更正:
sed -r 's/a/b/g' -i fileName