Χρήσεις της εντολής ταξινόμησης του Linux

Τα στοιχεία που πρέπει να ταξινομηθούν πρέπει να οριοθετηθούν με κάποιο τρόπο

Τα δεδομένα σε ένα αρχείο κειμένου 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 καθορίζει αριθμητική ταξινόμηση και όχι αλφαβητική.