Εισαγωγή
Σε αυτόν τον οδηγό, θα σας δείξω πώς να ταξινομήσετε τα δεδομένα σε αρχεία με απεριόριστο χρόνο και από την έξοδο άλλων εντολών.
Δεν θα εκπλαγείτε να μάθετε ότι η εντολή που χρησιμοποιείτε για την εκτέλεση αυτής της εργασίας ονομάζεται "ταξινόμηση". Όλοι οι κύριοι διακόπτες της εντολής ταξινόμησης θα παρέχονται σε αυτό το άρθρο.
Δειγμα δεδομένων
Τα δεδομένα σε ένα αρχείο μπορούν να ταξινομηθούν εφόσον οριοθετηθούν με κάποιο τρόπο.
Για παράδειγμα, ας πάρουμε το τελευταίο τραπέζι του πρωταθλήματος από την Premier League της Σκωτίας πέρυσι και να αποθηκεύσουμε τα δεδομένα σε ένα αρχείο που ονομάζεται "spl".
Μπορείτε να δημιουργήσετε ένα αρχείο δεδομένων ως εξής με μία λέσχη και τα δεδομένα για αυτό το σύλλογο να χωρίζονται με κόμματα σε κάθε σειρά.
Ομάδα | Γκολ σκορ | Γκολ κατά | Σημεία |
---|---|---|---|
Celtic | 93 | 31 | 86 |
Είδος σκωτσέζικου τερριέ | 62 | 48 | 71 |
Καρδιές | 59 | 40 | 65 |
St Johnstone | 58 | 55 | 56 |
Motherwell | 47 | 63 | 50 |
Ρος Κομητεία | 55 | 61 | 48 |
Inverness | 54 | 48 | 52 |
Νταντί | 53 | 57 | 48 |
Partick | 41 | 50 | 46 |
Χάμιλτον | 42 | 63 | 43 |
Kilmarnock | 41 | 64 | 36 |
Dundee United | 45 | 70 | 28 |
Πώς να ταξινομήσετε δεδομένα σε αρχεία
Από εκείνο το τραπέζι, μπορείτε να δείτε ότι η Σέλτικ κέρδισε το πρωτάθλημα και ο Dundee United ήρθε τελευταίος. Εάν είστε fan του Dundee United ίσως θελήσετε να κάνετε τον εαυτό σας να αισθάνεται καλύτερα και θα μπορούσατε να το κάνετε αυτό με ταξινόμηση στα γκολ που σημειώθηκαν.
Για να το κάνετε αυτό εκτελέστε την ακόλουθη εντολή:
ταξινόμηση -k2 -t, spl
Αυτή τη φορά η σειρά θα είναι η εξής:
- Partick
- Kilmarnock
- Χάμιλτον
- Dundee United
- Motherwell
- Νταντί
- Inverness
- Ρος Κομητεία
- St Johnstone
- Καρδιές
- Είδος σκωτσέζικου τερριέ
- Celtic
Ο λόγος που τα αποτελέσματα είναι σε αυτή τη σειρά είναι ότι η στήλη 2 είναι τα γκολ που σημειώνονται στη στήλη και το είδος πηγαίνει από το χαμηλότερο στο υψηλότερο.
Ο διακόπτης -k σας επιτρέπει να επιλέξετε τη στήλη που θέλετε να ταξινομήσετε και ο διακόπτης -t σας επιτρέπει να επιλέξετε τον οριοθέτη.
Για να γίνουν πραγματικά ευτυχισμένοι οι οπαδοί της Dundee United μπορούν να ταξινομηθούν ανά στήλη 4 χρησιμοποιώντας την ακόλουθη εντολή:
sort -k4 -t, spl
Τώρα η Dundee United είναι κορυφαία και η Celtic είναι στο κατώτατο σημείο.
Φυσικά, αυτό θα έκανε τους οπαδούς του Celtic και του Dundee πολύ δυστυχισμένους. Για να κάνετε τα πράγματα σωστά, μπορείτε να ταξινομήσετε με αντίστροφη σειρά χρησιμοποιώντας τον ακόλουθο διακόπτη:
sort -k4 -t, -r spl
Ένας μάλλον περίεργος διακόπτης σάς επιτρέπει να ταξινομήσετε τυχαία που πραγματικά απλά ανακατεύει τις σειρές δεδομένων.
Μπορείτε να το κάνετε χρησιμοποιώντας την ακόλουθη εντολή:
ταξινόμηση -k4 -t, -R spl
Αυτό θα μπορούσε να προκαλέσει πραγματικά προβλήματα αν ανακατεύετε τον διακόπτη -r και τον διακόπτη -R σας.
Η εντολή ταξινόμησης μπορεί επίσης να ταξινομήσει ημερομηνίες σε τάξη μηνών. Για να δείξετε τον παρακάτω πίνακα:
Μήνας | Χρησιμοποιημένα δεδομένα |
---|---|
Ιανουάριος | 4G |
Φεβρουάριος | 3000Κ |
Μάρτιος | 6000K |
Απρίλιος | 100Μ |
Ενδέχεται | 5000Μ |
Ιούνιος | 200Κ |
Ιούλιος | 4000K |
Αύγουστος | 2500Κ |
Σεπτέμβριος | 3000Κ |
Οκτώβριος | 1000Κ |
Νοέμβριος | 3G |
Δεκέμβριος | 2G |
Ο παραπάνω πίνακας αντιπροσωπεύει το μήνα του έτους και την ποσότητα δεδομένων που χρησιμοποιείται σε μια κινητή συσκευή.
Μπορείτε να ταξινομήσετε τις ημερομηνίες αλφαβητικά χρησιμοποιώντας την ακόλουθη εντολή:
sort -k1 -t, λίστα χρησιμοποιούμενων δεδομένων
Μπορείτε επίσης να ταξινομήσετε ανά μήνα χρησιμοποιώντας την ακόλουθη εντολή:
sort -k1 -t, -M λίστα δεδομένων
Τώρα προφανώς ο παραπάνω πίνακας τους δείχνει ήδη σε τάξη μηνών, αλλά αν ο κατάλογος ήταν τυχαία κατοικημένος, τότε θα ήταν απλός τρόπος να τα διαχωρίσετε.
Εξετάζοντας τη δεύτερη στήλη μπορείτε να δείτε ότι όλες οι τιμές είναι σε μορφή αναγνώσιμη από τον άνθρωπο και δεν φαίνεται να είναι εύκολο να ταξινομηθεί αλλά η εντολή sort μπορεί να ταξινομήσει τη στήλη δεδομένων που χρησιμοποιήθηκε χρησιμοποιώντας την ακόλουθη εντολή:
ταξινόμηση -k2 -t, -h λίστα δεδομένων
Πώς να ταξινομήσετε δεδομένα που έχουν περάσει από άλλες εντολές
Ενώ η ταξινόμηση δεδομένων σε αρχεία είναι χρήσιμη, η εντολή sort μπορεί επίσης να χρησιμοποιηθεί για να ταξινομήσει την έξοδο από άλλες εντολές:
Παραδείγματος χάριν, κοιτάξτε την εντολή ls :
ls -lt
Η παραπάνω εντολή επιστρέφει κάθε αρχείο ως μια σειρά δεδομένων με τα ακόλουθα πεδία που εμφανίζονται σε στήλες:
- δικαιώματα
- αριθμός κόμβων
- όνομα χρήστη
- όνομα ομάδας
- Μέγεθος
- τελευταία ημερομηνία πρόσβασης
- όνομα αρχείου
Μπορείτε να ταξινομήσετε τη λίστα ανά μέγεθος αρχείου, εκτελώντας την ακόλουθη εντολή:
ls -lt | sort -k5
Για να λάβετε τα αποτελέσματα με αντίστροφη σειρά, θα χρησιμοποιήσατε την ακόλουθη εντολή:
ls -lt | sort -k5 -r
Η εντολή ταξινόμησης μπορεί επίσης να χρησιμοποιηθεί σε συνδυασμό με την εντολή ps που αναφέρει τις διεργασίες που εκτελούνται στο σύστημά σας.
Για παράδειγμα, εκτελέστε την ακόλουθη εντολή ps στο σύστημά σας:
ps -eF
Η παραπάνω εντολή επιστρέφει πολλές πληροφορίες σχετικά με τις τρέχουσες διαδικασίες στο σύστημά σας.
Μία από αυτές τις στήλες είναι το μέγεθος και ίσως θελήσετε να δείτε ποιες διαδικασίες είναι οι μεγαλύτερες.
Για να ταξινομήσετε αυτά τα δεδομένα κατά μέγεθος, θα χρησιμοποιήσατε την ακόλουθη εντολή:
ps-eF | sort -k5
Περίληψη
Δεν υπάρχει τίποτα στην εντολή ταξινόμησης αλλά μπορεί να γίνει χρήσιμο πολύ γρήγορα όταν ταξινομείτε την έξοδο από άλλες εντολές σε μια ουσιαστική σειρά, ειδικά όταν η εντολή δεν διαθέτει τους δικούς της διακόπτες ταξινόμησης.
Για περισσότερες πληροφορίες, διαβάστε τις σελίδες χειρισμού για την εντολή ταξινόμησης.