小記憶體處理1G或10G大小的log檔案
阿新 • • 發佈:2019-01-03
主要原理:大檔案分割成小檔案。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