숫자_ID, 상태, 설명이 포함된 파일이 2개 있습니다. 숫자를 기준으로 이 두 파일을 결합하고 싶습니다.
number_123, status1, status2
내 파일 1:
number_123,this car is under maintenance
number_345,this car checked is done
number_356,this car is under main
내 파일 2:
number_123,hold
number_345,done
두 파일의 기존 숫자를 다음과 같이 연결합니다.
number_123,hold,this car is under maintenance
number_345,done,this car checked is done
공통 번호를 찾기 위해 comm file1 file2를 사용했는데 파일은 다음과 같습니다.
number_123,this car is under maintenance
number_123,hold
number_345,this car checked is done
number_345,done
한 줄로 인쇄하려면 어떻게 해야 하나요?
number_123,hold,this car is under maintenance
number_345,done,this car checked is done
답변1
이 comm
유틸리티는 파일 간의 전체 행을 비교하는 데 사용됩니다. 당신이 원하는 것은 특정 분야에 참여하는 것뿐입니다.
$ join -t, file2 file1
number_123,hold,this car is under maintenance
number_345,done,this car checked is done
이는 두 파일이 모두 조인 필드(각 파일에서 쉼표로 구분된 첫 번째 열)를 기준으로 정렬되어 있다고 가정합니다.
파일이 정렬되지 않은 경우 다음을 사용하여 미리 정렬할 수 있습니다.
sort -t, -k1,1 -o file1 file1
sort -t, -k1,1 -o file2 file2
에서 ksh93
또는 "즉시" 정렬할 수도 있습니다 bash
.zsh
join -t, <( sort -t, -k1,1 file2 ) <( sort -t, -k1,1 file1 )