Compartir tecnología

adb shell logcat -b all|grep ¿Cómo puedo grep dos subcadenas?

2024-07-06

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

existiradb shell logcatCombinado al mandogrepAl filtrar registros, si desea hacer coincidir dos subcadenas al mismo tiempo, puede usar una tubería (|) serán dosgrepcomando para concatenar, o usargrepde-E(oegrep, que equivale a-E) opción para admitir expresiones regulares extendidas, por lo que puede usar OR lógico (|) para hacer coincidir múltiples patrones.

Método 1: use dosgrepOrden

En este método, la primeragrepEl comando filtra las líneas que contienen la primera subcadena y luego la segunda.grepLuego, el comando filtra las líneas que contienen la segunda subcadena de estas líneas.

 

bash复制代码

adb shell logcat -b all | grep '子串1' | grep '子串2'

Método 2: usogrepde-EOpciones

Este enfoque es más conciso porque le permite utilizar ungrepSe especifican varios modos en el comando al mismo tiempo.

 

bash复制代码

adb shell logcat -b all | grep -E '子串1|子串2'

Sin embargo, tenga en cuenta que el comando anterior en realidad coincidirá con líneas que contengan "subcadena 1" o "subcadena 2", no ambas. Si desea hacer coincidir dos subcadenas al mismo tiempo, debe escribir:

 

bash复制代码

adb shell logcat -b all | grep '子串1' | grep '子串2'

O usargrepde-z(Nota: Este no es un estándargrepparte, pero algunas versiones degrepozgrepapoyo) oawkEspere a que otras herramientas manejen la coincidencia de varias líneas (esto suele ser más complejo y no necesario para escenarios simples).

Sin embargo, si realmente necesita hacer coincidir dos subcadenas en una expresión regular (y las dos subcadenas pueden aparecer en cualquier lugar de la misma línea), puede usar el análogo del AND lógico (aunque en realidad usa el OR lógico).|, pero asegurándose de que ambas subcadenas aparezcan en el patrón):

 

bash复制代码

adb shell logcat -b all | grep -E '子串1.*子串2|子串2.*子串1'

Este comando coincidirá con la situación en la que "subcadena 1" aparece primero y luego "subcadena 2" en la misma línea, o "subcadena 2" aparece primero y luego aparece "subcadena 1". Tenga en cuenta que este patrón no requiere estrictamente que las dos subcadenas sean inmediatamente adyacentes entre sí; puede haber cualquier número de caracteres entre ellas;Si los necesitas uno al lado del otro, puedes quitar el del medio..*