다른 파일의 값 비교를 출력하는 방법

다른 파일의 값 비교를 출력하는 방법

다음 두 파일에는 사용 가능한 빌드 이름과 버전 번호가 포함되어 있습니다.

서버.txt

Build2 200
Build3 100
Build1 400
Build7 200

로컬.txt

Build1 300
Build2 200
Build3 100

내 경우에는 두 목록이 반드시 순서대로 있거나 동일한 수의 값을 가질 필요는 없습니다.

로컬 값이 서버 값과 동일하면 빌드가 "업데이트"됩니다. 다음 예와 같이 출력이 "업데이트됨"인지 "만료됨"인지 표시하는 출력을 생성하는 방법은 다음과 같습니다.

Build2 Updated
Build3 Updated
Build1 Out-of-date
Build7 Out-of-date

답변1

일반적인 솔루션 awk:

awk '
  NR==FNR { k[$1] = $2; next }
  { print $1, (k[$1] == $2) ? "Updated" : "Out-of-date" }
' local.txt server.txt

관련 정보