0

我有以下内容:

sed -i "s/SYNFLOOD_RATE  = \"100/s\"/SYNFLOOD_RATE  = \"10\s\"/g"

问题是如何避免这个错误?

/bin/sed: -e expression #1, char 28: unknown option to `s'

有没有办法进行通配符匹配并用 sed 替换?

4

2 回答 2

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'

(这里的分隔符是@

于 2012-10-12T19:35:08.487 回答
0

你有太多的斜线,4 应该有 3。使用不同的分隔符;逗号(,)、 (!)、哈希(#) 和at (@) 是常见的替代方法。

sed -i "s,SYNFLOOD_RATE = \"100/s\",SYNFLOOD_RATE = \"10\s\",g"

请注意,原始版本中有“100/s”,替换版本中有“10s”(无斜线)。要实际插入反斜杠,您需要输入其中的 4 个:10\\\\s。每对将被外壳减少为单个,然后剩余的双精度将被解释为文字反斜杠sed

于 2012-10-12T20:10:47.783 回答