1. 程式人生 > >小記憶體處理1G或10G大小的log檔案

小記憶體處理1G或10G大小的log檔案

主要原理:大檔案分割成小檔案。split 分割檔案命令

為了保證檔案的完整性,要按行分割
wc -l test.log   #檢視總共多少行
可知81910500行, 分割成10M左右,81910500/102.4 約800000 行一個檔案
#     按行  行數   檔名   字尾數字  字尾4位   字首  
split -l 800000 test.log -d       -a   4   test_

檢視小檔案即可
less test_0001
cat -n test_0001 | grep 查詢內容


補充內容:
1、快速生成1G大log檔案
首先我有約100k的小檔案s.log,迴圈 10500次生成大約1G檔案test.log。
shell指令碼內容如下:

touch test.log

for((i=0;i<10500;i++))
do
    cat s.log >> test.log
    echo "www.djlcx.cn" >>test.log
done


2、split的使用
-b 按檔案大小分割
split -b 1M file      #預設字尾是字母 xaa xab xac ...
split -b 10k file -d -a 3   #3位數字字尾  x000 x001 x002 ...
split -b 10k file -d -a 3 split_   #指定字首


3、合併檔案
cat test_* >t.log