comm이 예상한 결과를 보여주지 않습니다.

comm이 예상한 결과를 보여주지 않습니다.

여러 개의 파일이 있습니다(파일 1.txt그리고파일 2.txt) 그리고 저는 unix "comm" 명령을 사용하여 이 파일들을 비교하여 file1.txt에서 고유한 줄을 찾습니다.

다음은 file1.txt의 줄입니다.

OD1
EN2
OD3
OD4
OD5
EN6
EN7
EN8
EN9
OD10
OD11
OD12

다음은 file2.txt의 줄입니다.

EN1
EN2
EN3
OD4
OD5
EN6
EN7
EN8
EN9
OD10

내가 사용하는 명령은 다음과 같습니다

comm -23 file1.txt file2.txt

실제

결과 :

OD1 
OD10
OD11
OD12
OD3

예상하다

나는 그것을 기대합니다:

OD1 
OD11
OD12
OD3

예상 결과를 얻는 방법을 알려주시겠습니까?

답변1

파일은 사전순으로 정렬되어야 합니다. 그렇지 않으면 comm작동하지 않습니다.

순서대로 정렬한 후 다시 시도하세요.

또는 다음을 사용하십시오:

comm -23 <(sort file1.txt) <(sort file2.txt)  

답변2

사용

sdiff -s file1.txt file2.txt | awk '{print $1}' | sort -u

출력은 다음과 같습니다

OD1                                                                                                                                                                      
OD11                                                                                                                                                                     
OD12                                                                                                                                                                     
OD3   

관련 정보