在bash中过滤adb logcat时如何在标签名称中应用正则表达式

时间:2019-07-03 08:14:28

标签: android logging kotlin adb logcat

我想知道在过滤tag names日志时是否有任何方法可以将正则表达式应用于adb logcat。我可以使用grep管道,但是它适用于整个文本,而不是标签名称。我只想在标签名称中应用正则表达式。例如,

$ adb logcat -v tag | grep MyData*

产生

D/MyActivity: calling MyDataManager
D/MyDataManager: data1 inserted
D/MyDataWorker: data1 inserted

但是我的预期输出是

D/MyDataManager: data1 inserted
D/MyDataWorker: data1 inserted

该怎么做?

1 个答案:

答案 0 :(得分:0)

tagadb logcat上的regexp不支持grep。但是,Below为我工作,以匹配所有标签以Activ开头的日志。

adb shell logcat | grep -P "^\S+\s+\S+\s+\S+\s+\S+\s+\S+\s+Activ"

-P用于Perl之类的regexp支持。 用\s whitespace\S non whitespace字符构成图案,直到达到tag。 例如,在下面的日志中,它以非空格'07 -08'开头,它将与模式中的第一个\S+相匹配。其余模式也是如此。

  

07-08 17:13:00.042 1677 1708 D ActivityManager:cleanUpApplicationRecord-475