Какой самый эффективный способ вычесть один список из другого? - PullRequest
2 голосов
/ 30 сентября 2011

Я пытаюсь вычесть List_1 (50k строк) из List_2 (100k строк), когда элемент в List_1 является точным соответствием для элемента в List_2. Я использую grep, в частности:

grep -v -f List_1.csv List_2.csv > Magic_List.csv

Я знаю, что это не самый эффективный способ сделать это, но что? sed? awk? comm? SQL? Как я могу сделать это наиболее эффективным способом?

Ответы [ 3 ]

4 голосов
/ 30 сентября 2011

Это один из самых эффективных способов ИМХО, вам нужно добавить -F хотя:

grep -Fvf List_1.csv List_2.csv > Magic_List.csv
1 голос
/ 30 сентября 2011

Наиболее эффективным способом является использование структуры данных Trie или хэш-функции для 2-го списка и для каждого элемента в первом поиске по списку в вашем Trie.

0 голосов
/ 30 сентября 2011

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

comm -13 List_1.csv List_2.csv > Magic_List.csv
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...