Отредактируйте очень большой sql дамп/текстовый файл (на Linux)

Язык C # не включает синтаксис для выражения концепции «владения» объектом или управления временем жизни в отличие от Rust, поэтому от документации API зависит, принимает ли конструктор объекта свои аргументы или нет (и, следовательно, кто получает возможность позвонить .Dispose()). Это не то, что компилятор C # может определить для вас. Однако реализации .Dispose() должны быть идемпотентными в любом случае , поэтому нет никакого вреда в вызове .Dispose() многократных (избыточных) раз.

Просто следуйте идиоматическим соглашениям C # для сложенных using операторов:

using( SqlConnection c = new SqlConnection( connectionString ) )
using( SqlCommand cmd = c.CreateCommand() )
{
    await c.OpenAsync().ConfigureAwait(false);

    cmd.CommandText = "SELECT foo, bar FROM baz";

    using( SqlDataReader rdr = await cmd.ExecuteReaderAsync().ConfigureAwait(false) )
    {
        ...
    }
} 
15
задан Jon Seigel 19 March 2010 в 19:09
поделиться

2 ответа

Вместо того, чтобы удалять первые несколько строк, попытайтесь редактировать их, чтобы быть пробелом.

hexedit программа может сделать это - она читает файлы в блоках, так открытие файла на 10 ГБ не отличается от открытия файла 100 КБ к ней.

$ hexedit largefile.sql.dump
tab (switch to ASCII side)
space (repeat as needed until your header is gone)
F2 (save)/Ctrl-X (save and exit)/Ctrl-C (exit without saving)
32
ответ дан 1 December 2019 в 01:24
поделиться

Perl может считать файл линию за линией:

жемчуг-pi.bak-e 's/^create индексирует / - создают индекс /'

-1
ответ дан 1 December 2019 в 01:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: