![Unix에서 서로 다른 두 파일 간의 데이터 비교](https://linux55.com/image/135186/Unix%EC%97%90%EC%84%9C%20%EC%84%9C%EB%A1%9C%20%EB%8B%A4%EB%A5%B8%20%EB%91%90%20%ED%8C%8C%EC%9D%BC%20%EA%B0%84%EC%9D%98%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%EB%B9%84%EA%B5%90.png)
2개의 다른 파일이 있습니다.
파일 1
2
4
6
8
10
12
파일 2
2
3
5
6
10
12
2개의 파일을 비교하여 파일 1에는 있지만 파일 2에는 없는 출력 데이터를 얻고 싶습니다.
산출
4
8
아래 명령을 사용하고 있지만 원하는 출력을 얻지 못했습니다.
통신-23 파일1 파일2
답변1
제대로 작동 하려면 comm
두 파일 모두 숫자순이 아닌 사전순으로 정렬되어야 합니다. comm
전화하기 전에 파일을 정렬 할 수 있습니다.
sort -o file1 file1
sort -o file2 file2
그 다음에:
$ comm -23 file1 file2
4
8
comm
또는 쉘이 프로세스 대체를 지원하는 경우 다음을 호출하는 동안 파일을 정렬할 수 있습니다.
$ comm -23 <( sort file1 ) <( sort file2 )
4
8
답변2
그렙을 사용할 수 있습니다
grep -F -x -f 'File2' -v 'File1'
File2(-f)의 고정 문자열(-F)에 대한 패턴
-x
전체 줄을 일치시키는 데 사용됩니다 . 그렇지 않으면 File1의 "0123"은 File2의 "12"로 인해 출력에서 제외됩니다.
비슷한 직선을 찾고 (-v)를 사용하여 역함수를 찾습니다.