Быстрый способ удалить строку из чрезвычайно большого файла

У меня есть 67GB CSV-файл (я знаю … я знаю …)

Мне нужно удалить 4 125878 строк из файла, поскольку он поврежден. Мои инструменты синтаксического анализа CSV не будут игнорировать или пропускать его.

Я мог бы использовать sed чтобы сделать что-то вроде

sed '4125878d' in.csv > out.csv

Но это было бы очень дорогостоящей операцией с точки зрения времени и дискового пространства.

Если я использую sed -i '4125878d' in.csv , операция занимает много времени.

Есть ли способ быстро удалить строку из середины огромного файла?

  • sed для совпадения нуля или большего количества пробелов в строке
  • sed count lines между шаблоном - несколько файлов
  • Как извлечь данные из файла и построить имя файла из одного из значений
  • Отфильтровать несогласованные блоки данных
  • Перемещение одного файла за раз, исходя из определенного числа в файлах
  • Почему непоследовательность с использованием cat и echo для этой команды sed?
  • как удалить последние две строки с разделителями из каждой строки в большом файле
  • Извлечение данных между двумя сопоставленными шаблонами в двоичном файле
  • 2 Solutions collect form web for “Быстрый способ удалить строку из чрезвычайно большого файла”

    Я верю, что нет.

    Даже если sed или какая-либо программа, которую вы используете для этого, достаточно умна, чтобы сделать изменения на месте, а не временным файлом, все равно придется переписывать все данные после начала строки, которую вы хотите удалить.

    Удаление строки означает, что вы перемещаете все содержимое файла с точки на, до конца предыдущей строки. Независимо от того, вам все равно придется переписывать файл с этого момента.

    Сделайте это на лету:

     csv-parser -f <(cat my-huge.csv | sed '4125878d') 
    Interesting Posts

    stty перед входом в систему

    Трюки и советы по поиску информации на страницах man

    Как сохранить TeXLive в актуальном состоянии на gentoo?

    GREP / SED или AWK: печать всего абзаца в файле по совпадению с образцом

    Могу ли я установить из источника, когда у вас уже есть пакет репо?

    Графика Radeon с Linux Mint 18

    Что запускается, когда программа предлагает вам открыть файл в Linux?

    Разрешать только внутренние пароли ssh, всегда разрешать внешние ssh-логины с ключом

    Как установить драйвер i915_bo в Linux Mint

    Как ограничить количество соединений на хост, проходящих через маршрутизатор / мост?

    Добавить mth и nth столбцы файла со столбцами другого файла

    Замените корень во время выполнения

    Запишите переменную, содержащую большой текст, с \ n в файл с обычными интерпретаторами интерпретаторов. Как ты делаешь это?

    Ошибка при включении командной строки bash

    Как проверить, установлен ли ftp на сервере linux

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