сравните два файла, используя цикл, чтобы увидеть, каких строк нет в обоих файлах

сравните два файла, используя цикл, чтобы увидеть, каких строк нет в обоих файлах
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

Я беру ваши фрагменты информации из комментариев:

файл "full" - один IP-адрес на строку. Файл .cfg содержит все виды алфавитного текста в дополнение к IP-адресам.

и

Мне нужно выполнить итерацию по «полному» файлу, чтобы увидеть, присутствуют ли IP-адреса внутри него (по одному на строку) также в файле .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

Адаптируйте это к вашим потребностям (которые я не совсем понимаю)

Связанный контент