Как применить регулярное выражение в имени тега при фильтрации adb logcat в bash - PullRequest
0 голосов
/ 03 июля 2019

Интересно, есть ли способ применить регулярное выражение к tag names при фильтрации adb logcat журналов. Я могу использовать grep pipe, но он применяется ко всему тексту, а не только к именам тегов. Я хочу применять регулярные выражения только в именах тегов. Например,

$ 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 голосов
/ 08 июля 2019

Нет встроенной поддержки для grep с регулярным выражением на tag с adb logcat. Но ниже работал для меня, чтобы соответствовать всем журналам, у которых тег начинается с Activ.

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

-P для поддержки регулярных выражений типа Perl. Сделайте шаблон с \s whitespace и \S non whitespace символами, пока не достигнете tag. Например, в приведенном ниже журнале он начинается с непропускаемого пробела '07 -08 ', который будет соответствовать первому \S+ в шаблоне. аналогично для остальной части картины.

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

...