2

У меня есть два списка адресов электронной почты CSV (Список A и B). Наши маркетологи случайно отправили электронное письмо людям из Списка А вместо того, чтобы объединить оба списка перед отправкой.

Необходимо отправить электронное письмо людям из списка B, которых не было в списке A.

Как я могу узнать, какое электронное письмо находится в списке B, которого нет в списке A? Я написал PHP-скрипт, но для образовательных учреждений, и когда маркетологи снова совершают ту же ошибку, я хотел бы знать, есть ли команды linux, чтобы сделать это вместо того, чтобы запускать PHP-скрипт. (Я знаю, что мог бы просто запустить скрипт, но я уверен, что есть лучший способ).

Я нашел следующее решение, но оно объединяет списки, а не показывает, какое письмо находится в списке B, а не в списке A:Как объединить два файла CSV?

2 ответа2

4

Вы могли бы попробовать

cat {A,A,B}.csv | sort | uniq -u

cat выводит содержимое обоих файлов, sort сортирует выходные данные (очевидно) и uniq -u удаляет все дублирующиеся записи (оставляя только те, которые встречаются один раз), если у вас есть двойная запись в одном из списков, она, конечно, будет удалена так что вы должны убедиться, что вы не делаете. Как отметил Бен Фойгт в комментариях, вам нужно дважды cat А, чтобы гарантировать удаление каждой записи в нем.

Вы можете добавить >> C.csv в командную строку, чтобы записать содержимое в файл.

cat {A,A,B}.csv | sort | uniq -u  >> C.csv
1

Вы можете импортировать в Excel/OpenOffice и т.д.

  • Объедините два списка в один. (вставьте оба списка в один столбец)

  • Выберите все адреса в этом одном столбце.

  • Используйте conditional formatting чтобы, скажем, выделить только уникальные значения.

  • sort по условному форматированию.

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