두 텍스트 파일 간의 차이점을 표시하는 Bash 스크립트

두 텍스트 파일 간의 차이점을 표시하는 Bash 스크립트

두 개의 목록이 있다고 가정해 보겠습니다.

guests-2016.txt:

Peter
Michael
Frank
Dirk

guests-2017.txt:

Mark
Michael
Dirk
Lilly

두 개의 새로운 손님 목록을 만드는 방법

  1. 참석했지만 guests-2016.txt참석하지 않은 손님 guests-2017.txt( )former_guests.txt

  2. 이전에는 없었 guests-2016.txt으나 지금은 여기에 있는 손님 guests-2017.txt( new_guests.txt)

빈 줄은 무시해야 합니다. 표준 유틸리티만 사용할 수 있습니다.

diff내 생각은 일부 후처리를 사용하고 수행하는 것입니다 .

답변1

2개 주어짐정렬됨파일이 comm이 작업을 수행합니다.

예를 들어 -2 -3및 명령줄 옵션의 조합을 참조하세요.-1 -3

답변2

작업이 완료되었는지 확인하세요. 필요한 경우 설명을 추가할 수 있습니다.

awk '
/^$/{next}
FNR == NR {guest_2016[$1] = 1}
FNR != NR {
    if(!guest_2016[$1])
        print $1 > "new_guests.txt" 
    delete guest_2016[$1];
}
END {
    for(i in guest_2016)
        print i > "former_guests.txt"
}' guests-2016.txt guests-2017.txt

관련 정보