maneiras rápidas de remover as linhas iniciais do arquivo de texto grande

1

Eu tenho um arquivo de texto grande (> 500 GB), todas as formas que posso encontrar (sed / tail e outros) exigem que você grave o conteúdo de 500 GB no disco. Existe alguma maneira de remover rapidamente as primeiras poucas linhas sem gravar 500 GB no disco?

    
por 1a1a11a 16.02.2017 / 23:55

2 respostas

0

Você pode usar sed para excluir linhas no lugar com a opção -i :

$ cat foo.txt
bar
baz
lorem
$ sed -i '1d' foo.txt
$ cat foo.txt
baz
lorem

Você também pode excluir um intervalo de linhas; por exemplo, sed -i '1,4d' foo.txt removerá as linhas 1-4.

EDIT: como o don apontou nos comentários, a opção -i ainda cria uma cópia.

    
por 17.02.2017 / 00:38
0

Usando o comando tail dessa maneira:

# tail -n +<lines to skip> filename

por exemplo:

tail -n +1000 hugefile.txt > hugefile-wo-the-first-1000-lines.txt

E isso é tudo.- Para mais informações: link

BTW: Não se engane se alguém lhe disser que isso é exatamente o oposto do que você quer fazer, eu testei:

$ tail -n +3 /tmp/test 
3
4
5

$ cat /tmp/test 
1
2
3
4
5
    
por 17.02.2017 / 00:17