我的Linux服務器中有一個非常大的文件(當前大於10GB),並且內容一直保持添加到文件末尾。如何在Linux中處理動態增長的大文件
我有另一個腳本,需要一次處理該文件約1000行。從這個文件中獲取行並以相同的方式操作的最佳方式是什麼?
我正在考慮sed命令來刪除線條。但這是最好的方法嗎?
我的Linux服務器中有一個非常大的文件(當前大於10GB),並且內容一直保持添加到文件末尾。如何在Linux中處理動態增長的大文件
我有另一個腳本,需要一次處理該文件約1000行。從這個文件中獲取行並以相同的方式操作的最佳方式是什麼?
我正在考慮sed命令來刪除線條。但這是最好的方法嗎?
由於要監視的文件是一個純文本文件(不是二進制),你可以做一個
tail -f my_big_fat_file | my_fancy_processing_script
你不明白這一點在1000線,塊,但你的處理腳本可以積累線和開始處理,直到它收集足夠的。
這似乎不起作用。我得到立即退出的命令 –
該命令有兩種可能性立即退出(並且在每種情況下您都會收到一條錯誤消息):(1)在您調用該命令時該文件尚未存在,或2)你的腳本關閉STDIN。我不明白這個命令可以如何終止。 – user1934428
你可能想看看這個相關的問題:http://stackoverflow.com/questions/42396561/monitor-a-log-file-using-tail-f/42398092#42398092 – codeforester
@codeforester感謝您的鏈接。但我不知道如何使用shell腳本實現這個巨大的文件 –
這正是我的觀點。使用像Ruby,Python或Perl這樣的更高級的語言會更好。我以前用Perl/C解決了這些問題。 Bash絕對不是選擇。 – codeforester