Experimente ed
:
ed <<< $'1d\nwq' large_file
Se esse "grande" significa cerca de 10 milhões de linhas ou mais, use melhor tail
. Não é possível para edição no local, mas seu desempenho faz com que não seja perdoável:
tail -n +2 large_file > large_file.new
Editar para mostrar algumas diferenças de tempo:
(o código awk
do Jaypal foi adicionado para ter tempos de execução na mesma máquina (CPU 2.2GHz).)
bash-4.2$ seq 1000000 > bigfile.txt # further file creations skipped
bash-4.2$ time sed -i 1d bigfile.txt
time 0m4.318s
bash-4.2$ time ed -s <<< $'1d\nwq' bigfile.txt
time 0m0.533s
bash-4.2$ time perl -pi -e 'undef$_ if$.==1' bigfile.txt
time 0m0.626s
bash-4.2$ time { tail -n +2 bigfile.txt > bigfile.new && mv -f bigfile.new bigfile.txt; }
time 0m0.034s
bash-4.2$ time { awk 'NR>1 {print}' bigfile.txt > newfile.txt && mv -f newfile.txt bigfile.txt; }
time 0m0.328s