2010-04-23 3 views
5

Я пробовал это, но не могу найти то, что мне нужно.Shell Script - сравнение строк текста, удаляющих совпадения

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

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

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

(В качестве альтернативы, новый файл «c.txt» может быть создан с выходом, если это проще.)

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

ответ

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

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

fgrep -x -f b.txt -v a.txt 
+0

Спасибо ОЧЕНЬ всем, кто помог с этим. Я использовал этот конкретный совет, но очень благодарен за помощь каждого. – SirRatty

2

Используйте comm команду:

cat a.txt | sort > a2.txt 
cat b.txt | sort > b2.txt 
comm -23 a2.txt b2.txt > c.txt 
0

Мне нравится Grep/fgrep ответ, но вот еще одна кошка/сортировать вариант :

cat a.txt b.txt | sort -u > c.txt 
+0

Это не то, что ищет ОП. – ghostdog74

+0

oops. Ты прав; Я прочитал сообщение совершенно неправильно. Извините, SirRatty! –