Я пытаюсь очистить огромную базу данных электронных писем, но когда я использую следующую команду Grep, я получаю сообщение об ошибке "Память исчерпана".
pv "Suppresion-List.txt" | grep -vf <(sed 's/^/^/; s/$/$/' EMAILS.txt) > RESULT.txt
Набор данных в обоих файлах действительно огромен, например, более 5 миллионов электронных писем, поэтому сервер Linux выдает ошибку "Память исчерпана".
Поэтому я решил разделить файл на маленькие файлы с 10 000 электронных писем для обработки.
split -d -l 10000 EMAILS.txt Segment
Как создать Bash Script с циклом, где он проверяет созданный разделенный файл в порядке возрастания и начинает обработку с первого созданного файла - например, Segment00
pv "Suppresion-List.txt" | grep -vf <(sed 's/^/^/; s/$/$/' Segment00) > RESULT.txt
... затем автоматически зациклите ту же команду и замените файл второго сегмента в команде - например, Segment01
pv "Suppresion-List.txt" | grep -vf <(sed 's/^/^/; s/$/$/' Segment01) > RESULT.txt
... нести цикл до последнего сегмента, а затем окончательно завершить.
Не могли бы вы помочь мне написать такой скрипт на Bash? Я не могу понять, как автоматически подставлять сегментированные файлы в порядке возрастания автоматически в цикле для написания сценария оболочки.
Пожалуйста помоги.