удар, Linux: Разность множеств двух текстовых файлов

У меня есть два файла A-nodes_to_delete и B-nodes_to_keep. Каждый файл имеет много строк с числовыми идентификаторами.

Я хочу иметь список числовых идентификаторов, которые находятся в nodes_to_delete но НЕ в nodes_to_keep, напримерalt text.

Выполнение его в базе данных PostgreSQL является необоснованно медленным. Какой-либо аккуратный способ сделать это в ударе с помощью инструментов Linux CLI?

ОБНОВЛЕНИЕ: Это, казалось бы, было бы заданием Pythonic, но файлы действительно, действительно большие. Я решил некоторое подобное использование задач uniq, sort и некоторые методы теории множеств. Это было приблизительно двумя или тремя порядками величины быстрее, чем эквиваленты базы данных.

64
задан Glorfindel 5 July 2019 в 22:05
поделиться

2 ответа

Команда comm делает это.

101
ответ дан 24 November 2019 в 15:45
поделиться

Возможно, вам нужен лучший способ сделать это в postgres, я могу поспорить, что вы не найдете более быстрого способа сделать это с помощью плоских файлов. Вы должны иметь возможность выполнить простое внутреннее соединение и предположить, что оба столбца идентификаторов проиндексированы, что должно быть очень быстрым.

1
ответ дан 24 November 2019 в 15:45
поделиться
Другие вопросы по тегам:

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