Ack: Ένα καλύτερο Grep
Αν έχετε οποιαδήποτε εμπειρία χρησιμοποιώντας τη γραμμή εντολών Linux, έχετε αναμφισβήτητα χρησιμοποιήσει το "grep" για να αναζητήσετε συμβολοσειρές κειμένου, είτε προέρχονται από αρχεία είτε από εντολές. Υπάρχει ένας καλύτερος τρόπος για να γίνει αυτό, και ονομάζεται Ack.
Ack είναι ένα πρόγραμμα γραμμένο σε Perl που έχει ως στόχο να αντικαταστήσει το παλιό παλιό Grep, το οποίο ήταν γύρω από τις αρχές της δεκαετίας του '70. (Σε περίπτωση που αναρωτιέστε, grep σημαίνει "Global Regular Expression Print.")
Ο συγγραφέας του Ack, Andy Lester, είναι τόσο σίγουρος ότι ο Ack είναι καλύτερος από τον grep, ότι ο ιστότοπος του έργου του ονομάστηκε betterthangrep.com.
Μπορείτε να το πάρετε με λίγους τρόπους. Αν είστε κανονικός χρήστης του Perl, μπορείτε να χρησιμοποιήσετε το CPAN για να το εγκαταστήσετε, ίσως με το Perlbrew όπως περιγράψαμε σε ένα παλαιότερο άρθρο. Το Cpanminus είναι ένας δημοφιλής ελαφρύς πελάτης CPAN. Για να εγκαταστήσετε το Ack με αυτό, απλά χρησιμοποιήστε αυτήν την εντολή:
cpanm App :: Ack
Φυσικά, εάν χρησιμοποιείτε το Ubuntu και θέλετε να το εγκαταστήσετε μέσω του apt-get, μπορείτε να το κάνετε και αυτό, αν και το Ubuntu τείνει να είναι πίσω από την τελευταία έκδοση του προγραμματιστή. Απλά χρησιμοποιήστε αυτήν την εντολή:
sudo apt-get να εγκαταστήσετε ack-grep
Μπορείτε να χρησιμοποιήσετε Ack λίγο πολύ τον τρόπο που μπορείτε να χρησιμοποιήσετε grep. Για παράδειγμα, για να βρείτε το όνομα "maketecheasier" στο αρχείο mte.txt, απλά χρησιμοποιήστε αυτήν την εντολή:
ack maktecheasier mte.txt
Ή μπορείτε να ανακατευθύνετε την έξοδο σε αυτό:
γάτα | ack maketecheasier
Ένα από τα σημαντικότερα χαρακτηριστικά που θα δουν οι νέοι χρήστες είναι ότι δίνουν ένα ωραίο οπτικό στοιχείο στη συμβολοσειρά αναζήτησης στην έξοδο, πράγμα που σημαίνει ότι μπορείτε να δείτε αν ακριβώς ταιριάζετε αυτό που ψάχνετε.
Αν ψάχνετε με μια περίπλοκη τακτική έκφραση, μπορείτε να δείτε τι ακριβώς ταιριάζει, ενώ παράλληλα εντοπίζει ψευδώς θετικά.
Ένα άλλο χρήσιμο χαρακτηριστικό είναι ότι το Ack αναζητά αυτόματα αρχεία αυτόματα. Αυτό σημαίνει ότι όχι μόνο θα ψάξει Ack όλα τα αρχεία σε έναν κατάλογο, αν το δώσετε ένα, αν αυτός ο κατάλογος περιέχει άλλους καταλόγους, θα ψάξει και αυτά, μέχρι να φτάσετε στο κάτω μέρος του δέντρου καταλόγου. Αυτό είναι ιδιαίτερα χρήσιμο για τους προγραμματιστές (και αν είστε ένας, ίσως ήδη γνωρίζετε τι αναδρομικό σημαίνει), αλλά είναι επίσης πολύ χρήσιμο αν ψάχνετε για ένα μοτίβο σε μια δέσμη αρχείων απλού κειμένου.
Και μιλώντας για προγραμματισμό, μπορείτε να περιορίσετε την αναζήτησή σας σε μια ποικιλία από δημοφιλείς γλώσσες προγραμματισμού. Ακολουθεί ένα παράδειγμα χρησιμοποιώντας το Perl:
ack --perl 'somepattern' / my / directory
Μπορείτε να βρείτε ακόμη περισσότερα παραδείγματα στην ενότητα "Τύποι αρχείων Ack" της τεκμηρίωσης.
Δεδομένου ότι η Ack είναι γραμμένη στο Perl, είναι αυτόματα συμβατή με τις κανονικές εκφράσεις του Perl. Οι τακτικές εκφράσεις είναι ένα είδος υπερ-ακριβούς αναζήτησης κειμένων, επιτρέποντάς σας να βρείτε πολύ συγκεκριμένα πρότυπα κειμένου.
Το καλύτερο και πιο αστείο χαρακτηριστικό είναι η επιλογή " --thpppt
", η οποία καλεί ένα σχέδιο τέχνης ASCII του Bill the Cat:
_ / | \ 'oO' = (___) = U ack - thpt!
Δεδομένου ότι το Unix και το Linux καθιστούν σχετικά εύκολο να γράψετε προγράμματα, είναι εύκολο να δημιουργήσετε αντικαταστάσεις για κοινά προγράμματα συστήματος. Το Ack είναι ένα από αυτά που δείχνει τη δημιουργικότητα των κοινοτήτων Perl και Unix / Linux.