Κοινή χρήση τεχνολογίας

adb shell logcat -b all|grep Πώς μπορώ να grep δύο υποσυμβολοσειρές;

2024-07-06

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

υπάρχειadb shell logcatΣυνδυάζεται στην εντολήgrepΌταν φιλτράρετε αρχεία καταγραφής, εάν θέλετε να ταιριάξετε δύο υποσυμβολοσειρές ταυτόχρονα, μπορείτε να χρησιμοποιήσετε έναν σωλήνα (|) θα δύοgrepεντολή για συνένωση ή χρήσηgrepτου-Eegrep, που ισοδυναμεί με-E) επιλογή για υποστήριξη εκτεταμένων τυπικών εκφράσεων, ώστε να μπορείτε να χρησιμοποιήσετε λογικό Ή (|) για να ταιριάζει με πολλά μοτίβα.

Μέθοδος 1: Χρησιμοποιήστε δύοgrepΣειρά

Σε αυτή τη μέθοδο, το πρώτοgrepΗ εντολή φιλτράρει τις γραμμές που περιέχουν την πρώτη υποσυμβολοσειρά και μετά τη δεύτερηgrepΣτη συνέχεια, η εντολή φιλτράρει τις γραμμές που περιέχουν τη δεύτερη υποσυμβολοσειρά από αυτές τις γραμμές.

 

bash复制代码

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

Μέθοδος 2: Χρήσηgrepτου-EΕπιλογές

Αυτή η προσέγγιση είναι πιο συνοπτική επειδή σας επιτρέπει να χρησιμοποιήσετε αgrepΠολλαπλές λειτουργίες καθορίζονται στην εντολή ταυτόχρονα.

 

bash复制代码

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

Σημειώστε, ωστόσο, ότι η παραπάνω εντολή θα ταιριάζει πραγματικά με γραμμές που περιέχουν "substring 1" ή "substring 2", όχι και τα δύο. Εάν θέλετε να ταιριάξετε δύο υποσυμβολοσειρές ταυτόχρονα, θα πρέπει να γράψετε:

 

bash复制代码

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

Ή χρησιμοποιήστεgrepτου-z(Σημείωση: Αυτό δεν είναι πρότυποgrepμέρος, αλλά μερικές εκδόσεις τουgrepήzgrepυποστήριξη) ήawkΠεριμένετε μέχρι άλλα εργαλεία να χειριστούν την αντιστοίχιση πολλών γραμμών (αυτό είναι συνήθως πιο περίπλοκο και δεν είναι απαραίτητο για απλά σενάρια).

Ωστόσο, εάν πραγματικά χρειάζεται να ταιριάξετε δύο υποσυμβολοσειρές σε μια κανονική έκφραση (και οι δύο υποσυμβολοσειρές μπορούν να εμφανιστούν οπουδήποτε στην ίδια γραμμή), μπορείτε να χρησιμοποιήσετε το ανάλογο του λογικού AND (αν και στην πραγματικότητα χρησιμοποιείτε λογικό Ή|, αλλά διασφαλίζοντας ότι και οι δύο υποσυμβολοσειρές εμφανίζονται στο μοτίβο):

 

bash复制代码

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

Αυτή η εντολή θα ταιριάζει με την κατάσταση όπου εμφανίζεται πρώτα το "substring 1" και μετά εμφανίζεται το "substring 2" στην ίδια γραμμή, ή το "substring 2" εμφανίζεται πρώτα και μετά εμφανίζεται το "substring 1". Σημειώστε ότι αυτό το μοτίβο δεν απαιτεί αυστηρά ότι οι δύο υποσυμβολοσειρές πρέπει να είναι αμέσως γειτονικές μεταξύ τους.Αν τα χρειάζεστε ακριβώς το ένα δίπλα στο άλλο μπορείτε να αφαιρέσετε το μεσαίο.*