2017-02-23 32 views
0

我的Linux服務器中有一個非常大的文件(當前大於10GB),並且內容一直保持添加到文件末尾。如何在Linux中處理動態增長的大文件

我有另一個腳本,需要一次處理該文件約1000行。從這個文件中獲取行並以相同的方式操作的最佳方式是什麼?

我正在考慮sed命令來刪除線條。但這是最好的方法嗎?

+0

你可能想看看這個相關的問題:http://stackoverflow.com/questions/42396561/monitor-a-log-file-using-tail-f/42398092#42398092 – codeforester

+0

@codeforester感謝您的鏈接。但我不知道如何使用shell腳本實現這個巨大的文件 –

+0

這正是我的觀點。使用像Ruby,Python或Perl這樣的更高級的語言會更好。我以前用Perl/C解決了這些問題。 Bash絕對不是選擇。 – codeforester

回答

0

由於要監視的文件是一個純文本文件(不是二進制),你可以做一個

tail -f my_big_fat_file | my_fancy_processing_script 

你不明白這一點在1000線,塊,但你的處理腳本可以積累線和開始處理,直到它收集足夠的。

+0

這似乎不起作用。我得到立即退出的命令 –

+0

該命令有兩種可能性立即退出(並且在每種情況下您都會收到一條錯誤消息):(1)在您調用該命令時該文件尚未存在,或2)你的腳本關閉STDIN。我不明白這個命令可以如何終止。 – user1934428