루프를 사용하여 두 파일을 비교하여 두 파일에 존재하지 않는 문자열 확인

루프를 사용하여 두 파일을 비교하여 두 파일에 존재하지 않는 문자열 확인
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

댓글에서 귀하의 정보를 가져왔습니다.

파일은 한 줄에 하나의 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

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

관련 정보