Предположим, у меня есть два файла, Файл A:
a,abcdef
b,bcdefa
c,cdefab
a,defabc
b,efabcd
c,fabcde
И файл Б:
a
b
Вывод, который я ищу:
a,abcdef
b,bcdefa
a,defabc
b,efabcd
Итак, в основном я хочу выбрать строки из файла A, где первый столбец соответствует любому значению в файле B, используя стандартные команды unix. Вид awk {if (file_b contains $1} print $1,$2
, но более эффективный.
Ожидаемое количество строк в файле A превышает 20 миллионов, а в файле B 1 миллион. Он должен работать в O(n), поэтому шаг содержит, вероятно, полагаться на хэш-таблицу.