Linux或Android下分割大文件的方法

  • 一、抓几十个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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章