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