루프를 사용하여 두 파일을 비교하여 두 파일에 없는 문자열을 확인합니다.

루프를 사용하여 두 파일을 비교하여 두 파일에 없는 문자열을 확인합니다.
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

귀하의 필요에 맞게 조정하십시오 (완전히 이해하지 못함)

관련 정보