compare dois arquivos usando loop para ver quais strings não estão em ambos os arquivos

compare dois arquivos usando loop para ver quais strings não estão em ambos os arquivos
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

Estou tentando ver se os hosts que já configurei no arquivo .cfg estão presentes no arquivo chamado 'full'. É claro que o código acima nem funciona. Estou procurando seus endereços IP.

Responder1

Retiro suas informações dos comentários:

o arquivo "completo" é um endereço IP por linha. O arquivo .cfg contém todos os tipos de texto alfabético, além de endereços IP.

e

Preciso iterar no arquivo 'completo' para ver se os IPs dentro dele (um por linha) também estão no arquivo .cfg

Então você deseja iterar, o que seu script não faz.

Tente com um loop 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 isso às suas necessidades (que não entendo totalmente)

informação relacionada