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)를 사용하여 역함수를 찾습니다.