compare dos archivos usando un bucle para ver qué cadenas no están en ambos archivos

compare dos archivos usando un bucle para ver qué cadenas no están en ambos archivos
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

Estoy intentando ver si los hosts que ya configuré en el archivo .cfg están presentes en el archivo llamado "completo". Por supuesto, el código anterior ni siquiera se ejecuta. Estoy buscando sus direcciones IP.

Respuesta1

Saco tus datos de los comentarios:

el archivo "completo" es una dirección IP por línea. El archivo .cfg contiene todo tipo de texto alfabético además de direcciones IP.

y

Necesito iterar sobre el archivo 'completo' para ver si las IP que contiene (una por línea) también están en el archivo .cfg

Entonces quieres iterar, lo cual tu script no hace.

Pruebe con un bucle 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

Adapte eso a sus necesidades (que no entiendo del todo)

información relacionada