두 파일을 비교하고 첫 번째 파일에 없는 다른 파일을 만드는 방법은 무엇입니까?

두 파일을 비교하고 첫 번째 파일에 없는 다른 파일을 만드는 방법은 무엇입니까?

file1포함하다:

100
200
300
400

file2포함하다:

500
600
700
200
300

예상되는 출력 파일은 다음과 같습니다.

500
600
700

답변1

출력이 정렬되는 것이 마음에 들지 않으면 다음을 사용할 수 있습니다.comm.

comm -13 <(sort /tmp/file1) <(sort /tmp/file2)

출력(암시적 정렬):

500
600
700

답변2

그리고 join:

join -j 1 -v 2 <(sort file1) <(sort file2)

어디:

  • -j조인 필드 정의
  • -v연결선 억제

또는 다음을 사용하여 awk:

awk 'NR==FNR{a[$1]++} !a[$1]' file1 file2
  • 첫 번째 파일이 배열에 로드됩니다.a
  • 그런 다음 두 번째 파일을 처리할 때 값이 a존재하지 않으면 다음 줄을 인쇄합니다.

관련 정보