我有以下内容:
sed -i "s/SYNFLOOD_RATE = \"100/s\"/SYNFLOOD_RATE = \"10\s\"/g"
问题是如何避免这个错误?
/bin/sed: -e expression #1, char 28: unknown option to `s'
有没有办法进行通配符匹配并用 sed 替换?
如果你想先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'
(这里的分隔符是@
)
你有太多的斜线,4 应该有 3。使用不同的分隔符;逗号(,)、 砰(!)、哈希(#) 和at (@) 是常见的替代方法。
sed -i "s,SYNFLOOD_RATE = \"100/s\",SYNFLOOD_RATE = \"10\s\",g"
请注意,原始版本中有“100/s”,替换版本中有“10s”(无斜线)。要实际插入反斜杠,您需要输入其中的 4 个:10\\\\s
。每对将被外壳减少为单个,然后剩余的双精度将被解释为文字反斜杠sed
。