Findstr: Παραδείγματα και συμβουλές για τη χρήση αυτού του εύχρηστου εργαλείου CMD των Windows

Για τους μη μυημένους, ένα εργαλείο αναζήτησης μοτίβων όπως το findstr μπορεί να φαίνεται άχρηστο. Αλλά όταν ασχολείστε με αρχεία καταγραφής που δημιουργούνται από το σύστημα ή εξόδους γραμμής εντολών που περιέχουν εκατοντάδες γραμμές κειμένου, το findstr είναι απλώς το εργαλείο που χρειάζεστε.

Οι χρήστες ενός λειτουργικού συστήματος Linux θα ήταν ήδη εξοικειωμένοι με την απίστευτη χρησιμότητα της εντολής Grep και το findstr εκπληρώνει έναν παρόμοιο ρόλο στα Microsoft Windows . Μπορείτε να το συνδυάσετε με άλλες εντολές(other commands) χρησιμοποιώντας σωλήνες ή απλώς να το εκτελέσετε απευθείας για να αναλύσετε πολλά αρχεία κειμένου. Ας δούμε πώς λειτουργεί το findstr με μερικά παραδείγματα.

Χρησιμοποιώντας την εντολή Findstr

Η βασική σύνταξη είναι απλή – findstr , όπουείναι το μοτίβο για αναζήτηση καιείναι η διεύθυνση του αρχείου προς αναζήτηση. Ανοίξτε τη γραμμή εντολών(Command Prompt) και δοκιμάστε το.

findstr SFC example1.txt

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

Παράμετροι

Μπορείτε να προσαρμόσετε περαιτέρω τον τρόπο λειτουργίας του findstr συμπεριλαμβάνοντας προαιρετικές παραμέτρους. Διακόπτες όπως /B ή /I τροποποιούν τη συμπεριφορά του findstr, επιβάλλοντας πρόσθετους όρους στην αναζήτηση. Για παράδειγμα:

findstr /I SFC example1.txt

Η συμπερίληψη του /I ως παραμέτρου καθιστά την αναζήτηση πεζών-κεφαλαίων μη ευαίσθητη, επιτρέποντας σε όλες τις αναφορές του όρου να ταιριάζουν, ανεξάρτητα από την κεφαλαία τους. Μπορείτε να βρείτε τη λίστα με όλες τις παραμέτρους του findstr στα επίσημα έγγραφα της Microsoft(official Microsoft docs) .

Προαιρετικά μοτίβα

Οι παράμετροι δεν είναι ο μόνος τρόπος με τον οποίο μπορείτε να προσαρμόσετε το findstr. Το να περικλείετε το <string> σε εισαγωγικά, για παράδειγμα, σας επιτρέπει να καθορίσετε πολλά μοτίβα, δίνοντάς σας μια αντιστοίχιση εάν βρεθεί κάποια από τις συμβολοσειρές κειμένου.

findstr "SFC DISM" example1.txt

Τα παραπάνω θα εμφανίσουν αντίστοιχες γραμμές που περιέχουν έναν από τους όρους. Αυτό το καθιστά χρήσιμο όταν ψάχνετε για αναφορά για ένα αντικείμενο με διαφορετικά ονόματα.

Κανονικές εκφράσεις

Το Findstr(Findstr) έχει τη δυνατότητα αναζήτησης σε πολλά αρχεία. Αλλαγήσε μια τυπική έκφραση κάνει την εντολή να αναζητά το καθορισμένο μοτίβο σε όλα τα αρχεία που ταιριάζουν.

findstr SFC *.txt

Η χρήση του χαρακτήρα μπαλαντέρ αντιστοιχεί στο regex σε όλα τα αρχεία κειμένου στον τρέχοντα κατάλογο και στους υποκαταλόγους του. Τα αποτελέσματα διαχωρίζονται επίσης κατά ονόματα αρχείων, επιτρέποντάς σας να δείτε ποια γραμμή προέρχεται από ποιο αρχείο.

Σωλήνες

Όπως οι περισσότερες εντολές cmd, το findstr μπορεί επίσης να χρησιμοποιηθεί στην έξοδο άλλων εντολών. Απλώς(Just) προσθέστε ένα σωλήνα μετά το τέλος της εντολής στόχου και καλέστε το findstr χωρίς α.

dir | findstr .txt

Αυτό εκτελεί μια αναζήτηση findstr στην έξοδο της εντολής dir, επιστρέφοντας τη λίστα αρχείων που τελειώνει σε .txt . Φυσικά το συγκεκριμένο παράδειγμα είναι άχρηστο στην πράξη αφού το dir μπορεί ήδη να εντοπίσει αρχεία ίδιου τύπου με κανονική έκφραση.

Κάποιος μπορεί επίσης να ακολουθήσει τη μεγαλύτερη διαδρομή της ανακατεύθυνσης της εξόδου σε ένα αρχείο κειμένου(redirecting the output to a text file) και στη συνέχεια να χρησιμοποιήσει το findstr στο αρχείο κειμένου, αλλά είναι ευκολότερο να κόψει τον μεσάζοντα.

Εφαρμογές του Findstr στα Windows

Οι προφανείς χρήσεις του findstr είναι εύκολα εμφανείς μόνο από τη σύνταξη. Μπορείτε να αναζητήσετε αρχεία κειμένου με μια συγκεκριμένη συμβολοσειρά κειμένου ή να δείτε εάν μια συγκεκριμένη συμβολοσειρά περιέχεται σε ένα αρχείο.

Αυτό, αν και θεωρητικά χρήσιμο, σπάνια χρησιμοποιείται εκτός σπάνιων περιπτώσεων. Στην εποχή των υπηρεσιών cloud όπως τα Έγγραφα Google(Google Docs) , οι περισσότεροι άνθρωποι δεν έχουν πλέον πολλά αρχεία κειμένου.

Οι πραγματικές εφαρμογές του findstr είναι λίγο πιο λεπτές και περιλαμβάνουν πιο ισχυρά αποτελέσματα. Εδώ είναι μερικά από τα πιο ενδιαφέροντα παραδείγματα.

Εύρεση συγκεκριμένων τύπων αρχείων

Η εντολή dir περιλαμβάνει ήδη την επιλογή αναζήτησης ονομάτων αρχείων χρησιμοποιώντας κανονικές εκφράσεις. Αλλά με το findstr, μπορείτε να αναζητήσετε αρχεία που μοιράζονται άλλα χαρακτηριστικά, όπως η ώρα ή η ημερομηνία δημιουργίας.

Ας υποθέσουμε ότι(Suppose) παρουσιάστηκε σφάλμα στις 06:43 μ.μ. και θέλετε να εντοπίσετε όλα τα αρχεία καταγραφής που δημιουργήθηκαν εκείνη τη στιγμή. Μόνο με την εντολή dir, θα πρέπει να περάσετε χειροκίνητα τα αποτελέσματα ή να λάβετε όλα τα αρχεία καταγραφής και να τα συγκρίνετε. Χρησιμοποιώντας το findstr, αυτό γίνεται μια απλή εντολή.

dir | findstr 06:43

Μπορείτε να δοκιμάσετε το ίδιο τέχνασμα για να βρείτε αρχεία που έχουν δημιουργηθεί σε μια συγκεκριμένη ημερομηνία ή να λάβετε μια λίστα καταλόγων.

dir | findstr DIR

Φιλτράρισμα πληροφοριών δικτύου(Network Information) με το Netstat

Το Netstat(Netstat) είναι μια εύχρηστη εντολή των Windows(Windows) που σας δίνει όλες τις πληροφορίες σχετικά με τις συνδέσεις δικτύου του υπολογιστή σας—πάρα πολλές πληροφορίες, όπου έρχεται το findstr.

Η διοχέτευση της εξόδου του netstat στο findstr σάς επιτρέπει να αναζητήσετε συνδέσεις με συγκεκριμένες ιδιότητες. Για παράδειγμα, με αυτόν τον τρόπο μπορείτε να λάβετε μια λίστα με όλες τις εγκατεστημένες συνδέσεις.

netstat | findstr ESTABLISHED

Αυτό το τέχνασμα είναι χρήσιμο κατά τη διάγνωση προβλημάτων δικτύου. Μπορείτε ακόμη να χρησιμοποιήσετε το findstr με ένα PID εφαρμογής για να βρείτε όλες τις συνδέσεις που ανοίγονται από μια συγκεκριμένη διαδικασία.

netstat -o | findstr 13120

Λήψη συγκεκριμένων διευθύνσεων IP

Η εντολή ipconfig σάς επιτρέπει να προβάλλετε λεπτομέρειες όλων των διεπαφών δικτύου των συστημάτων, συμπεριλαμβανομένων των διευθύνσεων IP. Μπορείτε να χρησιμοποιήσετε το findstr για να εξαγάγετε έναν συγκεκριμένο τύπο διεύθυνσης IP χωρίς να χρειάζεται να κάνετε κύλιση στο σύνολο.

ipconfig | findstr Temporary

Μπορείτε να επεκτείνετε αυτήν τη μέθοδο για να λάβετε πληροφορίες από το ipconfig, από τις μάσκες υποδικτύου έως τις διευθύνσεις πύλης.

Ανάλυση αρχείων σεναρίου

Σε όποια γλώσσα προγραμματισμού και αν κωδικοποιήσετε, τα αρχεία σεναρίου είναι τελικά απλώς κείμενο. Αυτό σημαίνει ότι μπορείτε να χρησιμοποιήσετε το findstr για να αναλύσετε σενάρια και να ανακτήσετε συγκεκριμένες ενότητες χωρίς να καθαρίσετε ολόκληρο τον κώδικα.

Ας υποθέσουμε(Say) ότι θέλουμε να δούμε πώς έχει χρησιμοποιηθεί η πρόταση if σε ένα συγκεκριμένο σενάριο. Μπορούμε να χρησιμοποιήσουμε την ακόλουθη εντολή:

findstr if script.ahk

Αυτό όχι μόνο θα εμφανίσει τις γραμμές χρησιμοποιώντας τη δήλωση if, αλλά θα μας δείξει επίσης τις εκφράσεις που χρησιμοποιούνται. Μπορείτε επίσης να συμπεριλάβετε την παράμετρο /N για να εμφανίσετε τους αριθμούς των γραμμών, κάτι που είναι πολύ βολικό για αρχεία σεναρίων.

findstr /N if script.ahk

Αξίζει να το χρησιμοποιήσετε το Findstr;

Η κύρια δυσκολία στην πλοήγηση στη διεπαφή της γραμμής εντολών είναι η ποσότητα του κειμένου που χρειάζεται να περιηγηθεί. Το Findstr(Findstr) είναι ένα απαραίτητο εργαλείο για την εξαγωγή χρήσιμων πληροφοριών και το φιλτράρισμα των ανεπιθύμητων.

Δεδομένου ότι όλες οι εντολές τερματικού δίνουν μια έξοδο που βασίζεται σε κείμενο, το findstr μπορεί πάντα να χρησιμοποιηθεί για τον εντοπισμό των σχετικών δεδομένων. Από την αντιμετώπιση προβλημάτων δικτύου(troubleshooting network issues) μέχρι την εύρεση των σωστών αρχείων, κάθε ενέργεια γίνεται πιο αποτελεσματική με το findstr.

Ακόμη και εκτός της συνέργειας του με άλλες εντολές, το findstr είναι χρήσιμο για την ικανότητά του να διασχίζει τα περιεχόμενα των αρχείων κειμένου. Μπορείτε να βρείτε συγκεκριμένα σφάλματα σε αρχεία καταγραφής που δημιουργούνται από μηχανή ή να ανακτήσετε τμήματα κώδικα σε ένα πολύπλοκο σενάριο.

Εν ολίγοις, το findstr είναι ένα απαραίτητο εργαλείο στο οπλοστάσιο κάθε προχωρημένου χρήστη των Windows , ειδικά εκείνου που σκοπεύει να εξοικειωθεί με τη διεπαφή της γραμμής εντολών.



About the author

Είμαι προγραμματιστής λογισμικού με πάνω από 10 χρόνια εμπειρία. Ειδικεύομαι στον προγραμματισμό Mac και έχω γράψει πολλές χιλιάδες γραμμές κώδικα για διάφορες εφαρμογές Mac, συμπεριλαμβανομένων, ενδεικτικά, των: TextEdit, GarageBand, iMovie και Inkscape. Έχω επίσης εμπειρία με ανάπτυξη Linux και Windows. Οι δεξιότητές μου ως προγραμματιστής μου επιτρέπουν να γράφω υψηλής ποιότητας, ολοκληρωμένα σεμινάρια για διάφορες πλατφόρμες ανάπτυξης λογισμικού - από macOS έως Linux - καθιστώντας τα σεμινάρια μου την τέλεια επιλογή για όσους θέλουν να μάθουν περισσότερα για τα εργαλεία που χρησιμοποιούν.



Related posts