Сценарий оболочки - сравнение строк текста, удаляя соответствия

Я сделал некоторый поиск этого, но не могу найти то, что я после, конкретно.

У меня есть два файла: "a.txt", "b.txt".

Каждый содержит список адресов электронной почты, разделенных новыми строками.

Для всех строк в "a.txt" я должен проверить на соответствие где угодно в "b.txt". Если так, адрес электронной почты в "a.txt" должен быть удален.

(С другой стороны, новый файл "c.txt" мог быть создан с выводом, если это легче.)

Я использую Mac OS X, так ищу сценарий оболочки, который мог помочь, или указатели на то, как я пойду о построении сценария. Спасибо за любую справку.

5
задан SirRatty 23 April 2010 в 03:53
поделиться

4 ответа

grep -F -x -f b.txt -v a.txt > c.txt

или, что то же самое,

fgrep -x -f b.txt -v a.txt
3
ответ дан 14 December 2019 в 19:06
поделиться
awk 'FNR==NR{_[$1];next}(!($1 in _))' b.txt a.txt > c.txt
0
ответ дан 14 December 2019 в 19:06
поделиться

Мне нравится ответ grep / fgrep, но вот еще один вариант cat / sort:

cat a.txt b.txt | sort -u > c.txt
0
ответ дан 14 December 2019 в 19:06
поделиться

Используйте команду comm следующим образом:

cat a.txt | sort > a2.txt
cat b.txt | sort > b2.txt
comm -23 a2.txt b2.txt > c.txt
2
ответ дан 14 December 2019 в 19:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: