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

スラッシュが多すぎます。3が必要な場合は4です。別の区切り文字を使用してください。カンマ(、)、 バン(!)、ハッシュ(#)、およびアット(@)が一般的な代替手段です。

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 に答える
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 に答える