ループを使用して2つのファイルを比較して、2つのファイルに存在しない文字列を確認する

ループを使用して2つのファイルを比較して、2つのファイルに存在しない文字列を確認する
i=$(cat /etc/icinga/devices.d/xlcdw/full)

if IP in grep -q $i /etc/icinga/devices.d/xlcdw/xlcdw-endpoints.cfg;
    echo "Already configured"
  else
    echo $IP
fi

.cfgファイルで設定したホストが「full」というファイルに存在することを確認しようとしています。もちろん、上記のコードは実行さえありません。私は彼らのIPアドレスを探しています。

ベストアンサー1

コメントからあなたの情報を取得しました。

ファイルは1行に1つのIPアドレスで「完全」になります。 .cfgファイルには、IPアドレスに加えて、さまざまなアルファベットテキストが含まれています。

そして

「完全」ファイルを繰り返して、そのファイルのIP(1行に1つ)が.cfgファイルにもあることを確認する必要があります。

したがって、繰り返したいのですが、スクリプトはそうではありません。

forループを試してください:

for IP in $(cat /etc/icinga/devices.d/xlcdw/full); do
  if [[ `grep -c $IP /etc/icinga/devices.d/xlcdw/xlcdw-endpoints.cfg` > 0 ]]; then
    echo $IP already configured
  else
    echo $IP missing
  fi
done

あなたのニーズに合わせて調整してください(完全に理解していません)

おすすめ記事