Partage de technologie

adb shell logcat -b all|grep Comment puis-je récupérer deux sous-chaînes ?

2024-07-06

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

existeradb shell logcatCombiné en commandegrepLors du filtrage des journaux, si vous souhaitez faire correspondre deux sous-chaînes en même temps, vous pouvez utiliser un tube (|) deuxgrepcommande pour concaténer, ou utilisergrepde-E(ouegrep, ce qui équivaut à-E) pour prendre en charge les expressions régulières étendues, afin que vous puissiez utiliser le OU logique (|) pour correspondre à plusieurs modèles.

Méthode 1 : utilisez-en deuxgrepCommande

Dans cette méthode, le premiergrepLa commande filtre les lignes contenant la première sous-chaîne, puis la secondegrepLa commande filtre ensuite les lignes contenant la deuxième sous-chaîne de ces lignes.

 

bash复制代码

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

Méthode 2 : utilisergrepde-EPossibilités

Cette approche est plus concise car elle vous permet d'utiliser ungrepPlusieurs modes sont spécifiés dans la commande en même temps.

 

bash复制代码

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

Notez cependant que la commande ci-dessus correspondra en réalité aux lignes contenant « sous-chaîne 1 » ou « sous-chaîne 2 », et non les deux. Si vous souhaitez faire correspondre deux sous-chaînes en même temps, vous devez écrire :

 

bash复制代码

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

Ou utilisergrepde-z(Remarque : ceci n'est pas une normegreppartie, mais certaines versions degrepouzgrepsoutien) ouawkAttendez que d'autres outils gèrent la correspondance multiligne (cela est généralement plus complexe et n'est pas nécessaire pour des scénarios simples).

Cependant, si vous avez vraiment besoin de faire correspondre deux sous-chaînes dans une expression régulière (et que les deux sous-chaînes peuvent apparaître n'importe où sur la même ligne), vous pouvez utiliser l'analogue du ET logique (bien qu'en fait vous utilisez le OU logique|, mais en veillant à ce que les deux sous-chaînes apparaissent dans le modèle) :

 

bash复制代码

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

Cette commande correspondra à la situation dans laquelle « sous-chaîne 1 » apparaît en premier, puis « sous-chaîne 2 » apparaît dans la même ligne, ou « sous-chaîne 2 » apparaît en premier, puis « sous-chaîne 1 » apparaît. Notez que ce modèle n'exige pas strictement que les deux sous-chaînes soient immédiatement adjacentes l'une à l'autre ; il peut y avoir n'importe quel nombre de caractères entre elles ;Si vous en avez besoin l'un à côté de l'autre, vous pouvez retirer celui du milieu..*