Berbagi teknologi

adb shell logcat -b all|grep Bagaimana cara mengambil dua substring?

2024-07-06

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

adaadb shell logcatDikombinasikan dalam perintahgrepSaat memfilter log, jika Anda ingin mencocokkan dua substring secara bersamaan, Anda dapat menggunakan pipa (|) akan duagrepperintah untuk menggabungkan, atau menggunakangrepdari-E(atauegrep, yang setara dengan-E) untuk mendukung ekspresi reguler yang diperluas, sehingga Anda dapat menggunakan logika OR (|) untuk mencocokkan beberapa pola.

Metode 1: Gunakan duagrepMemesan

Dalam metode ini, yang pertamagrepperintah memfilter baris yang berisi substring pertama, lalu substring keduagrepPerintah kemudian memfilter baris yang berisi substring kedua dari baris ini.

 

bash复制代码

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

Metode 2: Gunakangrepdari-EPilihan

Pendekatan ini lebih ringkas karena memungkinkan Anda menggunakan agrepBeberapa mode ditentukan dalam perintah secara bersamaan.

 

bash复制代码

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

Namun perlu diperhatikan bahwa perintah di atas sebenarnya akan mencocokkan baris yang berisi "substring 1" atau "substring 2", bukan keduanya. Jika Anda ingin mencocokkan dua substring sekaligus, Anda harus menulis:

 

bash复制代码

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

Atau gunakangrepdari-z(Catatan: Ini bukan standargrepsebagian, tetapi beberapa versigrepatauzgrepdukungan) atauawkTunggu hingga alat lain menangani pencocokan multi-baris (ini biasanya lebih rumit dan tidak diperlukan untuk skenario sederhana).

Namun, jika Anda benar-benar perlu mencocokkan dua substring dalam ekspresi reguler (dan kedua substring tersebut dapat muncul di mana saja pada baris yang sama), Anda dapat menggunakan analog logika AND (walaupun sebenarnya Anda menggunakan logika OR|, tetapi dengan memastikan bahwa kedua substring muncul dalam pola):

 

bash复制代码

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

Perintah ini akan cocok dengan situasi di mana "substring 1" muncul terlebih dahulu dan kemudian "substring 2" muncul di baris yang sama, atau "substring 2" muncul terlebih dahulu dan kemudian "substring 1" muncul. Perhatikan bahwa pola ini tidak mengharuskan kedua substring harus berdekatan satu sama lain; bisa ada sejumlah karakter di antara keduanya.Jika Anda membutuhkannya tepat di samping satu sama lain, Anda dapat menghapus yang di tengah.*