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。