Text-Processing
從大文本文件中刪除開頭行的快速方法
我有一個大文本文件(>500GB),我能找到的所有方式(sed/tail 和其他)都需要將 500GB 的內容寫入磁碟。有沒有辦法在不將 500GB 寫入磁碟的情況下快速刪除前幾行?
您可以使用
sed
以下選項刪除行-i
:$ cat foo.txt bar baz lorem $ sed -i '1d' foo.txt $ cat foo.txt baz lorem
您還可以刪除一系列行;例如
sed -i '1,4d' foo.txt
將刪除第 1-4 行。編輯:正如唐在評論中指出的那樣,該
-i
選項仍會創建一個副本。
通過以這種方式使用 tail 命令:
# tail -n +<lines to skip> filename
例如:
tail -n +1000 hugefile.txt > hugefile-wo-the-first-1000-lines.txt
僅此而已。-有關更多資訊: https ://es.wikipedia.org/wiki/Tail
順便說一句:如果有人告訴您這與您想要做的完全相反,請不要上當,我已經對其進行了測試:
$ tail -n +3 /tmp/test 3 4 5 $ cat /tmp/test 1 2 3 4 5