comm은 두 파일에서 file1에 대한 고유 단어를 찾을 수 없습니다.

comm은 두 파일에서 file1에 대한 고유 단어를 찾을 수 없습니다.

comm 명령을 사용하여 파일 1에서 모든 고유 단어를 추출해야 하는 두 개의 텍스트 파일이 있습니다. 따라서 파일 2에 없는 단어만 추출됩니다. 해당 명령을 사용하라는 요청을 받았습니다 comm(또는 가 아님 diff) join.

나는 eg.와 같은 많은 것을 시도했지만 comm -32 file1 file2이것은 파일 1의 모든 단어를 반환합니다.

답변1

comm각 단어가 한 줄(비교할 전체 줄)에 있어야 하는 파일을 정렬해야 합니다.

그래서 그렇습니다

(export LC_ALL=C
comm -23 <(grep -Po '\S+' file1 | sort) <(grep -Po '\S+' file2 | sort))

(GNU가 PCRE를 지원하고 쉘이 , 또는 grep같은 프로세스 대체를 지원한다고 가정 ).ksh93zshbash

sortsums 에 대해 바이트 간 비교를 수행 하도록 로케일을 C로 수정했습니다 comm.

답변2

파일 중 하나가 Windows 환경에 있는 경우 줄 종결자가 다를 수 있습니다. 바라보다여기전환을 위해.

관련 정보