주어진 2 개의 정렬 된 파일-다른 파일에서 찾은 모든 단어를 삭제


0

Linux에는 러시아어 UTF8 단어가 정렬 된 두 개의 텍스트 파일이 있습니다 sort -u(실제로 :%sort uVim에서 사용한 결과 동일한 결과가 나타납니다).

파일 중 하나에 dict.txt사용자 정의 사전에 약 700000 단어가 포함되어 있습니다. 다른 파일 bad-words.txt에는 종종 잘못 입력 된 단어가 포함되어 있습니다.

bad-words.txt에서 찾은 모든 단어를 제거하고 싶습니다 dict.txt.

해시를 사용하는 펄 스크립트가 그렇게 할 수 있다는 것을 알고 있지만 Unix one liner를 따르고 있습니다.

diff이 작업을 수행하기 위해 유닉스 명령 ( ?를 사용하는 것)이 있습니까? 그리고 diffWindows에서 "Beyond compare"프로그램이 있기 때문에 많은 수의 라인으로 혼동하지 않기를 바랍니다 .

답변:


3

통신은 이것을 할 것입니다.

comm -3 dict badwords

또는 즉시 정렬하려면 :

comm -3 <(sort dict-input) <(badwords)


불행히도 그것은 comm: file 1 is not in sorted order(나를 미리 분류하더라도) 불평 하고 이상한 2 열 출력을 생성합니다 ...
Alexander Farber

2
comm파일이 ASCII 순서 순서로 정렬 될 것으로 예상합니다 (예 :) LANG=C sort.
grawity

@ grawity : 그 조언은 내 하루를 구했다 :) 감사합니다!
Sebastian Łaskawiec
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.