Из одного файла-списка, удалить слова, находящиеся в другом файле, который используется как шаблон для удаления

Есть файл1.txt, который содержит слово1, слово2, слово3 и т.д, список длиный, по одному слову на строку. Есть файл2.txt, в нём тоже есть слова(1,2,3 и т.д.) с такой же огранизацией списка. Из файл1.txt нужно удалить слова, находящиеся в файл2.txt, т.е. последний используется как шаблон. Нашёл похожий вопрос тут но после выполнения получаю сообщение sed: can't read слово1: No such file or directory. Я не понял, что значит 's,^,/^,;s,$,:/d,', вариант /искомая строка/d более понятен, но не понятно как искомая строка станет шаблоном.


Ответы (1 шт):

Автор решения: DiD
cat > ./complete.txt <<EOF
word0
word1
word2
word3
word4
word5
EOF

cat > ./patterns.txt <<EOF
word1
word3
EOF

# 1 вариант

awk 'NR==FNR{a[$0];next} !($0 in a)' ./patterns.txt ./complete.txt 

# 2 вариант

grep -vf ./patterns.txt < ./complete.txt
→ Ссылка