file1과 file2라는 두 파일을 비교해야 합니다. 각 파일에는 로 시작하는 56개의 열이 있습니다 |
. 첫 번째 열은 파일의 직원 번호이고 두 번째 파일에도 동일한 직원 번호가 있는지 확인하겠습니다. 그렇지 않은 경우 전체 줄을 출력 파일에 씁니다. 파일2에 동일한 사원번호가 존재한다면 각 컬럼의 값을 비교해야 합니다. 데이터가 일치하지 않으면 출력 파일에 써야 합니다. 각 열의 값이 일치하면 해당 레코드를 무시해야 합니다.
샘플 파일
파일 1
2620|256034|131021|Mission Quality and Wipro Way|||
2622|256034|131021|Mission Quality and Wipro Way|||
2623|256034|131021|Mission Quality and Wipro Way|||
파일 2
2620|256034|234567|Mission Quality and Wipro Way|||
2621|256034|131021|Mission Quality and Wipro Way|||
2622|256034|131021|Mission Quality|||
2623|256034|131021|Mission Quality and Wipro Way|||
예제 출력:
2620|256034|131021|Mission Quality and Wipro Way|||
2621|256034|131021|Mission Quality and Wipro Way|||
2622|256034|131021|Mission Quality|||
답변1
만약에파일이 정렬되었습니다.작업을 완료하는 것은 쉽습니다.diff
comm -13 File1 File2
답변2
awk
예를 들어 다음을 사용할 수 있습니다 .
awk -F'|' 'NR==FNR {a[$1]=$0;next;}; !($1 in a) || ($0 != a[$1]);' File1 File2
귀하의 예를 사용 File1
하고File2
$ awk -F'|' 'NR==FNR {a[$1]=$0;next;}; !($1 in a) || ($0 != a[$1]);' File1 File2
2620|256034|234567|Mission Quality and Wipro Way|||
2621|256034|131021|Mission Quality and Wipro Way|||
2622|256034|131021|Mission Quality|||