두 개의 파일이 있습니다.
파일 1:
Dave 734.838.9800
Bob 313.123.4567
Carol 248.344.5576
Mary 313.449.1390
Ted 248.496.2204
Alice 616.556.4458
파일 2:
Bob Tuesday
Carol Monday
Ted Sunday
Alice Wednesday
Dave Thursday
Mary Saturday
이 두 개를 file3으로 병합하고 싶습니다.
file3은 다음과 같아야 합니다.
Name On-Call Phone
Carol MONDAY 248.344.5576
Bob TUESDAY 313.123.4567
Alice WEDNESDAY 616.556.4458
Dave THURSDAY 734.838.9800
Nobody FRIDAY 634.296.3356
Mary SATURDAY 313.449.1390
Ted SUNDAY 248.496.2204
그렇다면 쉘 스크립트에서 이 작업을 어떻게 수행할 수 있습니까?
답변1
이 join
유틸리티는 바로 이런 종류의 문제를 위해 설계되었습니다. 즉, 해당 필드 중 하나(기본적으로 첫 번째 필드)를 기반으로 두 파일을 결합합니다. 파일을 먼저 정렬해야 합니다.
join <(sort file2) <(sort file1) | column -t
생산하다
Alice Wednesday 616.556.4458
Bob Tuesday 313.123.4567
Carol Monday 248.344.5576
Dave Thursday 734.838.9800
Mary Saturday 313.449.1390
Ted Sunday 248.496.2204
이는 평일이 아닌 이름별로 정렬됩니다. 필요한 경우 평일별로 정렬하려면 후처리가 필요합니다.