Πώς να βρείτε διπλότυπα δεδομένα σε ένα αρχείο κειμένου Linux με uniq

Πώς να βρείτε διπλότυπα δεδομένα σε ένα αρχείο κειμένου Linux με uniq

Έχετε συναντήσει ποτέ αρχεία κειμένου με επαναλαμβανόμενες γραμμές και διπλές λέξεις; Maybeσως εργάζεστε τακτικά με έξοδο εντολών και θέλετε να φιλτράρετε αυτά για ξεχωριστές συμβολοσειρές. Όσον αφορά τα αρχεία κειμένου και την αφαίρεση περιττών δεδομένων στο Linux, η καλύτερη εντολή είναι η εντολή uniq.





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





Τι είναι η uniq εντολή;

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





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

Πώς να χρησιμοποιήσετε την εντολή uniq

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



Βασική σύνταξη

Η βασική σύνταξη της εντολής uniq είναι:

uniq option input output

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





ο παραγωγή Το όρισμα είναι προαιρετικό και μπορεί να παραλειφθεί. Εάν ένας χρήστης δεν καθορίσει το αρχείο εισόδου, το uniq λαμβάνει δεδομένα από την τυπική έξοδο ως είσοδο. Αυτό επιτρέπει στον χρήστη να κάνει σωλήνωση uniq με άλλες εντολές Linux Το

Παράδειγμα αρχείου κειμένου

Θα χρησιμοποιήσουμε το αρχείο κειμένου διπλότυπο.txt ως είσοδος για την εντολή.





127.0.0.1 TCP
127.0.0.1 UDP
Do catch this
DO CATCH THIS
Don't match this
Don't catch this
This is a text file.
This is a text file.
THIS IS A TEXT FILE.
Unique lines are really rare.

Σημειώστε ότι έχουμε ήδη ταξινομήσει αυτό το αρχείο κειμένου χρησιμοποιώντας το είδος εντολή. Εάν εργάζεστε με κάποιο άλλο αρχείο κειμένου, μπορείτε να το ταξινομήσετε χρησιμοποιώντας την ακόλουθη εντολή:

sort filename.txt > sorted.txt

Κατάργηση διπλών γραμμών

Η πιο βασική χρήση του uniq είναι η αφαίρεση επαναλαμβανόμενων συμβολοσειρών από την είσοδο και η εκτύπωση μοναδικής εξόδου.

uniq duplicate.txt

Παραγωγή:

Παρατηρήστε ότι το σύστημα δεν εμφανίζει τη δεύτερη εμφάνιση της γραμμής Αυτό είναι ένα αρχείο κειμένου Το Επίσης, η προαναφερθείσα εντολή εκτυπώνει μόνο τις μοναδικές γραμμές στο αρχείο και δεν επηρεάζει το περιεχόμενο του αρχικού αρχείου κειμένου.

Μετρήστε επαναλαμβανόμενες γραμμές

Για να εξάγετε τον αριθμό των επαναλαμβανόμενων γραμμών σε ένα αρχείο κειμένου, χρησιμοποιήστε το -ντο σημαία με την προεπιλεγμένη εντολή.

uniq -c duplicate.txt

Παραγωγή:

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

Για να εκτυπώσετε μόνο διπλές γραμμές από το αρχείο κειμένου, χρησιμοποιήστε το -ΡΕ σημαία. ο -ΡΕ σημαίνει Αντίγραφο Το

uniq -D duplicate.txt

Το σύστημα θα εμφανίσει την έξοδο ως εξής.

This is a text file.
This is a text file.

Παράλειψη πεδίων κατά τον έλεγχο για διπλότυπα

Εάν θέλετε να παραλείψετε έναν συγκεκριμένο αριθμό πεδίων ενώ ταιριάζετε με τις συμβολοσειρές, μπορείτε να χρησιμοποιήσετε το -φά σημαία με την εντολή. ο -φά σημαίνει Πεδίο Το

Εξετάστε το ακόλουθο αρχείο κειμένου πεδία.txt Το

192.168.0.1 TCP
127.0.0.1 TCP
354.231.1.1 TCP
Linux FS
Windows FS
macOS FS

Για να παραλείψετε το πρώτο πεδίο:

uniq -f 1 fields.txt

Παραγωγή:

192.168.0.1 TCP
Linux FS

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

Αγνοήστε τους χαρακτήρες κατά τη σύγκριση

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

πώς να πάρετε την Alexa για να παίξει το youtube
1. First
2. Second
3. Second
4. Second
5. Third
6. Third
7. Fourth
8. Fifth

Για να αγνοήσετε τους δύο πρώτους χαρακτήρες (τις αρίθμηση της λίστας) στο αρχείο list.txt :

uniq -s 2 list.txt

Παραγωγή:

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

Ελέγξτε τον πρώτο αριθμό Ν χαρακτήρων για διπλότυπα

ο -σε Η σημαία σας επιτρέπει να ελέγχετε μόνο έναν σταθερό αριθμό χαρακτήρων για διπλότυπα. Για παράδειγμα:

uniq -w 2 duplicate.txt

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

Παραγωγή:

Αφαιρέστε την ευαισθησία περίπτωσης

Όπως αναφέρθηκε παραπάνω, το uniq κάνει διάκριση πεζών-κεφαλαίων κατά την αντιστοίχιση γραμμών σε ένα αρχείο. Για να αγνοήσετε την περίπτωση, χρησιμοποιήστε το -Εγώ επιλογή με την εντολή.

uniq -i duplicate.txt

Θα δείτε την ακόλουθη έξοδο.

Σημείωση στην παραπάνω έξοδο, το uniq δεν εμφανίζει τις γραμμές ΠΙΑΣΤΕ ΑΥΤΟ και ΑΥΤΟ ΕΙΝΑΙ ΚΕΙΜΕΝΟ ΑΡΧΕΙΟ Το

Αποστολή εξόδου σε αρχείο

Για να στείλετε την έξοδο της εντολής uniq σε ένα αρχείο, μπορείτε να χρησιμοποιήσετε το Ανακατεύθυνση εξόδου ( >> ) χαρακτήρα ως εξής:

uniq -i duplicate.txt > otherfile.txt

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

cat otherfile.txt

Μπορείτε επίσης να χρησιμοποιήσετε άλλους τρόπους για να αποστολή εξόδου γραμμής εντολών σε ένα αρχείο στο Linux Το

Ανάλυση διπλότυπων δεδομένων με uniq

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

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

Μερίδιο Μερίδιο Τιτίβισμα ΗΛΕΚΤΡΟΝΙΚΗ ΔΙΕΥΘΥΝΣΗ Αυτά τα 10 παραδείγματα Sed θα σας κάνουν χρήστη Power Linux

Θέλετε να γίνετε χρήστης ισχύος Linux; Το να καταλάβεις το sed θα βοηθήσει. Μάθετε από αυτά τα 10 παραδείγματα sed.

Διαβάστε Επόμενο
Σχετικά θέματα
  • Linux
  • Linux
Σχετικά με τον Συγγραφέα Deepesh Sharma(79 άρθρα δημοσιεύθηκαν)

Ο Deepesh είναι ο Junior Editor για Linux στο MUO. Γράφει ενημερωτικούς οδηγούς στο Linux, με στόχο να προσφέρει μια ευχάριστη εμπειρία σε όλους τους νεοεισερχόμενους. Δεν είμαι σίγουρος για τις ταινίες, αλλά αν θέλετε να μιλήσετε για την τεχνολογία, είναι ο τύπος σας. Στον ελεύθερο χρόνο του, μπορείτε να τον βρείτε να διαβάζει βιβλία, να ακούει διαφορετικά είδη μουσικής ή να παίζει κιθάρα.

Περισσότερα από Deepesh Sharma

Εγγραφείτε στο newsletter μας

Εγγραφείτε στο ενημερωτικό μας δελτίο για τεχνικές συμβουλές, κριτικές, δωρεάν ebooks και αποκλειστικές προσφορές!

Κάντε κλικ εδώ για εγγραφή
Κατηγορία Linux