2016-12-28 2 views
0

HOME_NETのsuricata.yamlファイルのinfでsedを使用してIPアドレスを変更する必要があります。sed変更IPアドレスを使用することでSuricata.yamlのように角括弧と引用符で囲まれた内容

HOME_NET: "[172.20.16.25]" 

次の正規表現を使用すると、これまでのIPアドレスを管理できます。

sed -i "s/[0-9]\{1,3\}.[0-9]\{1,3\}.[0-9]\{1,3\}.[0-9]\{1,3\}/"$IP"/g" 

問題は、ファイル内のすべてのIPアドレスが変更されることです。私はちょうどHOME_NETの前にそれに興味がある。少し詳しく説明し

答えて

1

sed -i "/^ *HOME_NET/s/[0-9]\{1,3\}.[0-9]\{1,3\}.[0-9]\{1,3\}.[0-9]\{1,3\}/"$IP"/g"

:sedスクリプトの一行は、(ドキュメントのアドレス呼ばれる)ラインマッチング規則及び実行すべきアクション(コマンド)から構成されています。 /^ *HOME_NET/部分は単純な行一致規則であり、s/../../g部分は置換コマンドです。行一致規則を指定しないと、すべての行が一致します。

もう少し学ぶためにman sedを試してください。

+0

ご返信ありがとうございます。 HOME_NETが行の先頭にある場合はうまくいきますが、suricata.yamlファイルのようにHOME_NETの前に不明な数の空白を見つけたらどうなりますか? – Goforseeking

+0

正規表現を編集しました。先行するスペースを考慮するために '^'を開始する行の後に '*'( '')を追加する必要があります。 – Robin479

関連する問題