В Linux у меня есть два текстовых файла с русскими словами UTF8, отсортированными с помощью sort -u (на самом деле я использовал :%sort u в Vim, он дает такие же результаты).

Один из файлов dict.txt содержит около 700000 слов моего пользовательского словаря. Другой файл bad-words.txt содержит часто неправильно набранные слова.

Я хотел бы удалить все слова, найденные в bad-words.txt из dict.txt .

Я знаю, что Perl-скрипт, использующий хэш, мог бы сделать это, но я за Unix one liner.

Там, пожалуйста, команда Unix (может быть, что-то с использованием diff?) выполнить эту задачу? И я надеюсь, что diff не будет смущен большим количеством строк, потому что программа "Beyond Compare" на Windows ...

1 ответ1

3

комм будет делать это.

comm -3 dict badwords

или отсортировать на лету:

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .