- 一、抓几十个G的Log
1、作为测试人员或开发人员经常抓log,常用的命令就是:
adb shell
logcat -v time>/mnt/sdcard/ &
执行上面上面的命令后再SD卡下不停的输出log文件有时候抓几天几夜log文件会达到几十个G,当出现问题是我们常用的日志查看工具无法打开这么大的文件,并且也没有什么好的分割工具,今天研究了下Linux的文件分割命令发现很好用,写篇文章记录。
- 二、Log分割命令
split是linux的命令,android使用的是linux命令内核所以也是支持的,但是有些参数不可用,比如-d android下是不支持的
split
[tomcat-nohup]$ split --help
用法:split [选项]... [输入 [前缀]]
将输入内容拆分为固定大小的分片并输出到"前缀aa"、"前缀ab",...;
默认以 1000 行为拆分单位,默认前缀为"x"。如果不指定文件,或
者文件为"-",则从标准输入读取数据。
长选项必须使用的参数对于短选项时也是必需使用的。
-a, --suffix-length=N 指定后缀长度为N (默认为2)
-b, --bytes=大小 指定每个输出文件的字节大小
-C, --line-bytes=大小 指定每个输出文件里最大行字节大小
-d, --numeric-suffixes 使用数字后缀代替字母后缀
-l, --lines=数值 指定每个输出文件有多少行
--verbose 在每个输出文件打开前输出文件特征
--help 显示此帮助信息并退出
--version 显示版本信息并退出
SIZE 可以是一个可选的整数,后面跟着以下单位中的一个:
KB 1000,K 1024,MB 1000*1000,M 1024*1024,还有 G、T、P、E、Z、Y。
举例说明:
1.(按文件大小分割)比如我想将一个log文件切割成每个1M大小,后缀是2位数字结尾的子文件,子文件以anroidapp开头,则
split -a 2 -d -b 1M app.log anroidapp
-a 2 后缀是2位
-d 后缀是数字
-b 1M 每个文件最大1M
app.log anroidapp 需要切割的文件是app.log,生成的子文件前缀是 "anroidapp"
2.(按行数做分割)将一个文件分割成每1万行一个文件,后缀是2位,子文件以anroidapp开头
split -a 2 -l 10000 app.log anroidapp
-a 2 后缀是2位
-l 10000 每10000行一个文件
app.log anroidapp 需要切割的文件是app.log,生成的子文件前缀是 "anroidapp"
3、我一般都是用Notepad++查看日志的,Notepad++是轻量级的所以我一般用以下命令分割的
split -a 2 -d -l 200000 app.log androidapp