Прочитайте больший файл-A и найдите связанные строки во втором файле и создайте вывод

Я запускаю цикл for для двух больших файлов (от 1,6 до 47 миллионов записей), и каждая строка grep занимает много времени. было интересно, есть ли еще более быстрое решение, которое я могу использовать здесь. В принципе, мне нужно прочитать FILE-A для каждой строки и grep его против FILE-B.csv и создать результирующий вывод.

FILE-A: (1.6 million IDs) FILE-B.csv: (47 million IDs & Other Attributes) for UID in $(cat FILE-A); do cat FILE-B.csv | grep $i >> OUTPUT-FILE.csv done 

  • Отображать строки между текстом с помощью grep
  • Греп против внимания на mac
  • Поиск значений в 2 столбцах из CSV
  • grep: входной файл 'X' также является выходным
  • Как использовать grep с файлами в произвольной кодировке, без установленного языкового стандарта и без sudo?
  • Как использовать netstat для отображения только протокола, порта и статуса?
  • Использование grep / awk / sed для сортировки и объединения двух файлов
  • Поиск точного числа с помощью grep
  • One Solution collect form web for “Прочитайте больший файл-A и найдите связанные строки во втором файле и создайте вывод”

     grep -F -f FILE-A FILE-B.csv 

    -f указывает файл, из которого можно получить шаблоны. -F указывает шаблон как фиксированную строку, разделенную символами новой строки.

    Что касается вашего оригинального кода, то конвейер cat в grep – бесполезная трата ресурсов. grep может читать файл напрямую.

    Linux и Unix - лучшая ОС в мире.