一行搞定logcat 只打印符合某些包名的log

博客介绍了使用adb、grep、awk、sed等命令打印特定进程日志的方法。通过组合命令,先筛选出符合特定包名的进程,提取其进程号,再将进程号合并为一行,最后用grep命令筛选出对应进程的日志。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

adb shell logcat | grep -E `adb shell ps | grep -E "btcontrol|stmonitor" | awk '{print $2}' | sed 'N;s/\n/|/g'`

只打印某两个进程的log:

adb shell logcat | grep -E "PID1|PID2"

列出符合某些报名的进程:

adb shell ps | grep -E "btcontrol|stmonitor"

system    5059  324   858408 58300 SyS_epoll_ 00000000 S com.senter.btcontrol
system    5096  324   1109700 52072 SyS_epoll_ 00000000 S com.senter.stmonitor

只要上面输出结果的两个进程号:

adb shell ps | grep -E "btcontrol|stmonitor" | awk '{print $2}'

5059
5096

将上面两个进程号合并为一行并用竖线字符'|'分割:

adb shell ps | grep -E "btcontrol|stmonitor" | awk '{print $2}' | sed 'N;s/\n/|/g'
5059|5096

上面sed 多行合并一行 sed ‘N;s/\n/|/g’  N;表示每2行合并 N;N; 表示每3行合并。

sed 's/PATTERN_SEARCH/REPLACED_STRING/g' 是全局搜索替换命令,搜索PATTERN_SEARCH替换为REPLACED_STRING。

上述命令合并为一行:

adb shell logcat | grep -E `adb shell ps | grep -E "btcontrol|stmonitor" | awk '{print $2}' | sed 'N;s/\n/|/g'`

即,只打印进程名字中含有btcontrol或stmonitor的两个进程的log。

 

 

 

 

 

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值