小内存处理1G或10G大小的log文件

版权声明:转载请注明来源,http://blog.csdn.net/u010071211 https://blog.csdn.net/u010071211/article/details/85166744

主要原理:大文件分割成小文件。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

猜你喜欢

转载自blog.csdn.net/u010071211/article/details/85166744