Τα στοιχεία που πρέπει να ταξινομηθούν πρέπει να οριοθετηθούν με κάποιο τρόπο
Τα δεδομένα σε ένα αρχείο κειμένου Linux μπορούν να ταξινομηθούν με την εντολή ταξινόμησης, εφόσον κάθε στοιχείο οριοθετείται με κάποιο τρόπο. Συχνά, το κόμμα χρησιμοποιείται ως διαχωριστικό για οριοθετημένες πληροφορίες.
Βασικοί κανόνες για την ταξινόμηση
Η εντολή ταξινόμησης αναδιατάσσει τις γραμμές σε ένα αρχείο κειμένου για να τις ταξινομεί αριθμητικά και αλφαβητικά. Οι προεπιλεγμένοι κανόνες για την εντολή ταξινόμησης είναι:
- Το κείμενο που ξεκινά με έναν αριθμό εμφανίζεται πριν από το κείμενο που ξεκινάει με ένα γράμμα. χαμηλότεροι αριθμοί ταξινομούνται πρώτα.
- Κείμενο που αρχίζει με ένα γράμμα που εμφανίζεται στο αλφάβητο νωρίτερα ότι ταξινομείται το πρώτο γράμμα των άλλων καταχωρίσεων κειμένου πριν από το κείμενο που ξεκινά με ένα γράμμα που εμφανίζεται αργότερα στο αλφάβητο.
- Όταν το κείμενο ξεκινά με κεφαλαία και πεζά στιγμιότυπα του ίδιου γράμματος, η πεζά περίπτωση ταξινομείται πρώτα.
Ταξινόμηση αρχείου κειμένου
Για να ταξινομήσετε τις γραμμές σε ένα οριοθετημένο αρχείο Linux, χρησιμοποιείτε την εντολή sort όπως αυτή:
$ sort -k2 test.txtπου ταξινομεί το αρχείο "test.txt" σύμφωνα με τους χαρακτήρες που ξεκινούν από τη δεύτερη στήλη (το k2 αναφέρεται στη δεύτερη στήλη). Υποθέτοντας ότι το περιεχόμενο του αρχείου εισόδου είναι:
1, Justin Timberlake, Τίτλος 545, Τιμή $ 7.30 2, Taylor Swift, Τίτλος 723, Τιμή $ 7.90 3, Mick Jagger, Τίτλος 610, Τιμή $ 7.90 4, Lady Gaga, Τίτλος 118, Τιμή $ 7.30 5, Johnny Cash, Τίτλος 482, Τιμή $ 6.50 6, Elvis Presley, Τίτλος 335, Τιμή $ 7.30 7, John Lennon, Τίτλος 271, Τιμή $ 7.90 8, Michael Jackson, Τίτλος 373, Τιμή $ 5.50Επειδή η δεύτερη στήλη σε αυτό το παράδειγμα περιέχει τα πρώτα και επώνυμα ονόματα, η ταξινομημένη παραγωγή οργανώνεται από το πρώτο γράμμα του πρώτου ονόματος κάθε ατόμου στη δεύτερη στήλη - Elvis, John, Johnny, Justin, Lady, Michael, Mick και Taylor , όπως φαίνεται παρακάτω:
6, Elvis Presley, Τίτλος 335, Τιμή $ 6.30 7, John Lennon, Τίτλος 271, Τιμή $ 7.90 5, Johnny Cash, Τίτλος 482, Τιμή $ 6.50 1, Justin Timberlake, Τίτλος 545, Τιμή $ 6.30 4, Lady Gaga, Τίτλος 118, Τιμή $ 6.30 8, Μάικλ Τζάκσον, Τίτλος 373, Τιμή $ 5.50 3, Mick Jagger, Τίτλος 610, Τιμή $ 7.90 2, Taylor Swift, Τίτλος 723, Τιμή $ 7.90Αν ταξινομήσετε το αρχείο με το -k3 (χρησιμοποιώντας τα περιεχόμενα γραμμής ξεκινώντας από τη στήλη 3 - τη στήλη του αριθμού τίτλου), η έξοδος είναι:
4, Lady Gaga, Τίτλος 118, Τιμή $ 6.30 7, John Lennon, Τίτλος 271, Τιμή $ 7.90 6, Elvis Presley, Τίτλος 335, Τιμή $ 6.30 8, Michael Jackson, Τίτλος 373, Τιμή $ 5.50 5, Johnny Cash, Τίτλος 482, Τιμή $ 6.50 1, Justin Timberlake, Τίτλος 545, Τιμή $ 6.30 3, Mick Jagger, Τίτλος 610, Τιμή $ 7.90 2, Taylor Swift, Τίτλος 723, Τιμή $ 7.90και
$ sort -k4 test.txtπαράγει μια λίστα ταξινομημένη κατά τιμή:
8, Michael Jackson, Τίτλος 373, Τιμή $ 5.50 1, Justin Timberlake, Τίτλος 545, Τιμή $ 6.30 4, Lady Gaga, Τίτλος 118, Τιμή $ 6.30 6, Elvis Presley, Τίτλος 335, Τιμή $ 6.30 5, Johnny Cash, Τίτλος 482, Τιμή $ 6.50 2, Taylor Swift, Τίτλος 723, Τιμή $ 7.90 3, Mick Jagger, Τίτλος 610, Τιμή $ 7.90 7, John Lennon, Τίτλος 271, Τιμή $ 7.90Αντιστροφή μιας ταξινόμησης
Η επιλογή -r αντιστρέφει τη διαλογή. Για παράδειγμα, χρησιμοποιώντας τα παραπάνω αποτελέσματα:
$ sort -k4 -r test.txtαποδόσεις:
7, Τζον Λένον, Τίτλος 271, Τιμή $ 7.90 3, Mick Jagger, Τίτλος 610, Τιμή $ 7.90 2, Taylor Swift, Τίτλος 723, Τιμή $ 7.90 5, Johnny Cash, Τίτλος 482, Τιμή $ 6.50 6, Elvis Presley, Τίτλος 335, Τιμή $ 6.30 4, Lady Gaga, Τίτλος 118, Τιμή $ 6.30 1, Justin Timberlake, Τίτλος 545, Τιμή $ 6.30 8, Michael Jackson, Τίτλος 373, Τιμή $ 5.50Αποθήκευση αρχείου με ταξινόμηση
Η ταξινόμηση ενός αρχείου δεν το αποθηκεύει. Για να αποθηκεύσετε τη λίστα ταξινόμησης σε ένα αρχείο, χρησιμοποιείτε τον χειριστή ανακατεύθυνσης:
sort -k4 -r test.txt> test_new.txtόπου "test_new.txt" είναι το νέο αρχείο.
Ταξινόμηση μιας εξόδου ροής
Μπορείτε επίσης να εφαρμόσετε την εντολή ταξινόμησης στην έξοδο ενός ρεύματος, όπως ο χειριστής σωλήνων:
$ ls -al | sort -r -n -k5Αυτό ταξινομεί την έξοδο της καταχώρησης αρχείου που δημιουργείται από την εντολή ls κατά μέγεθος αρχείου, ξεκινώντας με τα μεγαλύτερα αρχεία. Ο τελεστής -n καθορίζει αριθμητική ταξινόμηση και όχι αλφαβητική.