Preciso remover as primeiras 42 linhas de um dump SQL de 2 GB.
Eu sei que posso ver as primeiras linhas usando:
head -n 44 dump.sql
Mas existe alguma maneira de editá-los ou removê-los?
command-line
Kohjah Breese
fonte
fonte
tail
. Encontrei muitas vezes algo novo para aprender com suas respostas. obrigado.sed -i 1,50000000d 17GigFile
cria um arquivo temporáriosedXYZ
que consome muito mais gigabytes. Existe uma abordagem sem arquivos temporários?tail -n +43
ehead -n 44
como mencionado na pergunta?Este parece ser o mais fácil:
Remova as linhas 1-42 do test.sql e salve como test2.sql
fonte
tente isso,
tail -n +43 dump.sql > dump_new.sql
fonte
Você pode usar o Vim no modo Ex:
1
mover para a primeira linha42
selecione 42 linhasd
excluirx
salvar e fecharfonte
Desculpe, não posso fornecer o código real no momento. No entanto, tente olhar algo ao longo das linhas de
O que isto deve fazer (uma vez formatado corretamente) é contar o número de linhas no arquivo (wc -l), subtrair 44 dele (-44) e imprimir tudo o que começa com a 45ª linha do arquivo.
Espero que isso ajude e boa sorte.
fonte
wc -l
sobre o arquivo, você processá-lo duas vezes, enquantosed
outail
processá-lo apenas uma vez.Tente isso,
ou,
fonte
Apenas para adicionar isso. Se você estiver em um Mac, precisará adicionar a extensão de backup. Resposta desta postagem .
fonte
Por causa de
sed
discrepâncias no Linux e Mac, resolvi usar otail -n +43 dump.sql > dump.sql
formato.fonte