我有以下内容:
sed -i "s/SYNFLOOD_RATE = \"100/s\"/SYNFLOOD_RATE = \"10\s\"/g"
问题是如何避免此错误?
/bin/sed: -e expression #1, char 28: unknown option to `s'
有没有办法进行外卡匹配并用sed替换?
答案 0 :(得分:0)
如果您想先grep
,请替换:
sed -i '/SYNFLOOD_RATE = \"100/s/"\/SYNFLOOD_RATE = \"10\s\"/replacement/g'
但分隔符可以是/
以外的任何内容,请参阅:
sed -i '/SYNFLOOD_RATE = "100/s@"/SYNFLOOD_RATE = "10\s"@replacement@g'
(此处的分隔符为@
)
答案 1 :(得分:0)
你有太多的斜杠,4应该有3.使用不同的分隔符; 逗号(,), bang (!),哈希(#),以及(@)处的是常见的的替代品。
sed -i "s,SYNFLOOD_RATE = \"100/s\",SYNFLOOD_RATE = \"10\s\",g"
请注意,原件中的“100 / s”和替换件中的“10s”(无斜线)。要实际插入反斜杠,您需要输入其中的4个:10\\\\s
。 shell将每个对减少为一个,然后剩下的double将被sed
解释为字面反斜杠。