私は次のものを持っています:
sed -i "s/SYNFLOOD_RATE = \"100/s\"/SYNFLOOD_RATE = \"10\s\"/g"
質問は、このエラーを回避するにはどうすればよいですか?
/bin/sed: -e expression #1, char 28: unknown option to `s'
また、ワイルド カード マッチを実行して sed に置き換える方法はありますか?
スラッシュが多すぎます。3が必要な場合は4です。別の区切り文字を使用してください。カンマ(、)、 バン(!)、ハッシュ(#)、およびアット(@)が一般的な代替手段です。
sed -i "s,SYNFLOOD_RATE = \"100/s\",SYNFLOOD_RATE = \"10\s\",g"
元の「100/s」と置換の「10s」(スラッシュなし)があることに注意してください。実際に円記号を挿入するには、次の4つを入力する必要があります10\\\\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'
(ここの区切り文字は@
)