您的位置:首页技术文章
文章详情页

android - 怎么adb logcat 输出到文件,并把文件命名为当前时间?

【字号: 日期:2024-08-29 08:46:59浏览:78作者:猪猪

问题描述

adb logcat | grep -i 'system.err' > test.log

这样可以输出log,可是执行两次这个命名,会把上次的覆盖掉,能不能动态的给“test.log”命名,比如命名为当前时间.log。 如2016-08-17-19-09-50.log

问题解答

回答1:

adb logcat > '%date:~0,4%-%date:~5,2%-%date:~8,2% %time:~0,2%-%time:~3,2%-%time:~6,2%.txt'

输出为:2016-11-09 15-40-16.txt

说明:在windows 的cmd命令行窗口执行date命令后这个环境变量的值为android - 怎么adb logcat 输出到文件,并把文件命名为当前时间?

那么如下的各个操作的意义如下:%date:~0,4% 表示从左向右指针向右偏0位,然后从指针偏移到的位置开始提取4位字符,结果是2016(年的值)%date:~5,2% 表示指针从左向右偏移5位,然后从偏移处开始提取2位字符,结果是11(月的值)%date:~8,2% 表示指针从左向右偏移8位,然后从偏移处开始提取2位字符,结果是09(日的值)

再举个例子:%date:~5% 表示指针从左向右偏移5位,然后提取所有的值%date:~-5% 表示指针反方向偏移,从最右端开始,偏移5位,然后从指针处提取左边的所有数值。

再来看时间time变量的值:

android - 怎么adb logcat 输出到文件,并把文件命名为当前时间?

那么如下的各个操作的意义如下:%time:~0,2% 表示从左向右指针向右偏0位,然后从指针偏移到的位置开始提取2位字符,结果是小时字段数值%time:~3,2% 表示指针从左向右偏移3位,然后从偏移处开始提取2位字符,结果是分钟字段数值%time:~6,2% 表示指针从左向右偏移6位,然后从偏移处开始提取2位字符,结果是秒字段数值

回答2:

> log_$(date '+%b_%d_%Y_%H.%M.%S').log时间的格式你可以自己调整。

回答3:

楼上的命令修改一下就可以

adb logcat > log_$(date +%Y-%m-%d).log