Прочитайте больший файл-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 выводить программу, но также нормально выводить вывод?
  • Как найти строки, начинающиеся с **
  • Как grep / awk / sed для текста в журнале и отображать кусок с текстом?
  • grep заботится о расширении .dat?
  • Выходной текущий день с использованием cal
  • сравнение времени, заданного пользователем для времени файла журнала
  • Могу ли я взять вывод ldd и загрузить файлы .so?
  • One Solution collect form web for “Прочитайте больший файл-A и найдите связанные строки во втором файле и создайте вывод”

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

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

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

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