Как (Ограниченная память)> grep -F -f file_A file_B >> output.txt

file_A (~ 500 МБ, 1,6 М строк) состоит из всех поисковых терминов равной длины, 1 на строку, не отсортировано.

file_B состоит из всех строк одинаковой длины, по 1 на строку, не отсортировано

Мне удалось запустить «grep -F -f file_A file_B >> output.txt» с любым размером file_B без проблем на ящике с 52 ГБ оперативной памяти. Проблема в том, что теперь я ограничен 4 ГБ оперативной памяти и, следовательно, размер файла_А теперь слишком велик, чтобы он работал без исчерпания доступной памяти.

За исключением ручного измельчения файла_А в меньшие укусы, есть ли простой способ сценария для grep для первых 1000 строк файла_А, затем, когда это закончится автоматически grep для строк 1001-2000 и т. Д. пока я не проведу все файлы file_A?

One Solution collect form web for “Как (Ограниченная память)> grep -F -f file_A file_B >> output.txt”

Перебирайте фрагменты файла_А, отправляя их как stdin в ту же инструкцию grep; настройте 1000 в доступную память:

 nlines=$(wc -l < file_A) chunk=1000 for((i=1; i < nlines; i += chunk)) do sed -n $i,+$((chunk - 1))p file_A | grep -F -f - file_B done > output 
  • Как дела? работать в bash?
  • проанализировать первый столбец вывода команды, получить соответствующее второе значение столбца
  • Добавление 2 строк в строфу текстового файла
  • Команда ведет себя по-разному при сохранении в файле * .sh
  • извлечение поля даты из строк
  • Как знак двоеточия и знак вопроса доллара объединяются в sh?
  • Найти | параллельный выполнение скрипта с помощью пути от find + другие аргументы
  • как проверить, установлены ли оба параметра в bash?
  • Сценарий Bash SFTPing на удаленный сервер и загрузка файлов, cd в соответствующий каталог на локальной машине
  • Написание функции bash для автозагрузки скриптов Matlab
  • whiptail требует трех чисел, прежде чем продолжить
  • Linux и Unix - лучшая ОС в мире.