2012-09-06 63 views
6

我在服務器上有一個名爲writelog的日誌文件,大約是2GB如何從linux終端刪除日誌文件的內容?

我想從文件中刪除第一個100,000行。我可以打開文件並刪除這些行,但由於文件的大小,我需要永久下載它。

那麼,是否可以從Linux終端做到這一點?如果是的話如何?

+1

你可以看到http://stackoverflow.com/questions/2112469/delete-specific-line-numbers-from-a-text-file-using-sed –

回答

7

這可能是更好地保持過去的1000行:

mv writelog writelog.bak 
tail -1000 writelog.bak > writelog 

而且你應該啓用logrotatemanual)爲文件。然後系統將確保文件不會超出比例。

13

如果要清除出整個文件一個快速的方法是

cat /dev/null > writelog

this thread on unix.com見。

+1

你會得到「文件存在」錯誤 – Bala

+1

@Bala取決於你的shell設置...更好的方法是:':> | writelog'來覆蓋''-C'/'noclobber'選項...在C shell中,這是:':>! writelog' ...':'是內置的「空命令」,它什麼都不做,不輸出,總是退出0。 – Carpetsmoker

相關問題