grepは前の文で見つかった文字列を探します。

grepは前の文で見つかった文字列を探します。

fortigate構成ファイル内でアドレス定義が使用されているかどうかを確認します。

構成ファイルからアドレスを含むセクションを抽出しました。このセクションの行は次のとおりです。

edit "address name"
    set associated-interface "someinterface"
    set subnet 1.1.1.1 0.0.0.0

次に、アドレス名を使用して次の手順を実行して、ルールまたはアドレスグループがそれを使用していることを確認したいと思います。

IFS='
'
for address in $(grep edit addresses.txt | cut -c10- | sed 's/"//'g); do echo $address; grep -n $address fortigate.conf; done

私がインポートしたIFSセクションここ

これはアドレス定義名のリストを返しますが、grepコマンドは何も見つかりません。少なくとも自分で見つけなければならないので変です。そうですか?

ベストアンサー1

IFSがなければ、より簡単になります。

grep edit addresses.txt | cut -d\" -f2 | while read addr
do
echo "addr=[$addr]"
grep -n "$addr" fortigate.conf
done

おすすめ記事