Я сделал некоторый поиск этого, но не могу найти то, что я после, конкретно.
У меня есть два файла: "a.txt", "b.txt".
Каждый содержит список адресов электронной почты, разделенных новыми строками.
Для всех строк в "a.txt" я должен проверить на соответствие где угодно в "b.txt". Если так, адрес электронной почты в "a.txt" должен быть удален.
(С другой стороны, новый файл "c.txt" мог быть создан с выводом, если это легче.)
Я использую Mac OS X, так ищу сценарий оболочки, который мог помочь, или указатели на то, как я пойду о построении сценария. Спасибо за любую справку.
grep -F -x -f b.txt -v a.txt > c.txt
или, что то же самое,
fgrep -x -f b.txt -v a.txt
awk 'FNR==NR{_[$1];next}(!($1 in _))' b.txt a.txt > c.txt
Мне нравится ответ grep / fgrep, но вот еще один вариант cat / sort:
cat a.txt b.txt | sort -u > c.txt
Используйте команду comm
следующим образом:
cat a.txt | sort > a2.txt
cat b.txt | sort > b2.txt
comm -23 a2.txt b2.txt > c.txt