删除文本文件中的第一行而不为整个文本文件分配内存

Mat*_*att 4 php unix text-files

我有一个非常大的文本文件,我需要做的就是从文件顶部删除一行.理想情况下,它将在PHP中完成,但任何unix命令都可以正常工作.我想我可以直接浏览文件的开头直到我到达\n,但我不知道我是怎么做到的.

谢谢,马特穆勒

gho*_*g74 6

你可以使用*nix中的各种工具.对超过150万行的文件的一些不同方法的比较.

$ wc -l < file4
1700589

$ time sed -n '2,$p' file4 > /dev/null

real    0m2.538s
user    0m1.787s
sys     0m0.282s

$ time awk 'NR>1' file4 > /dev/null

real    0m2.174s
user    0m1.706s
sys     0m0.293s

$ time tail -n +2 file4 >/dev/null

real    0m0.264s
user    0m0.067s
sys     0m0.194s

$time  more +2 file4 > /dev/null

real    0m11.771s
user    0m11.131s
sys     0m0.225s

$ time perl -ne 'print if $. > 1' file4 >/dev/null

real    0m3.592s
user    0m3.259s
sys     0m0.321s
Run Code Online (Sandbox Code Playgroud)