Πώς να ταξινομήσετε δεδομένα σε ένα αρχείο χρησιμοποιώντας Linux

Εισαγωγή

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

Δεν θα εκπλαγείτε να μάθετε ότι η εντολή που χρησιμοποιείτε για την εκτέλεση αυτής της εργασίας ονομάζεται "ταξινόμηση". Όλοι οι κύριοι διακόπτες της εντολής ταξινόμησης θα παρέχονται σε αυτό το άρθρο.

Δειγμα δεδομένων

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

Για παράδειγμα, ας πάρουμε το τελευταίο τραπέζι του πρωταθλήματος από την 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

Αυτή τη φορά η σειρά θα είναι η εξής:

Ο λόγος που τα αποτελέσματα είναι σε αυτή τη σειρά είναι ότι η στήλη 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

Περίληψη

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

Για περισσότερες πληροφορίες, διαβάστε τις σελίδες χειρισμού για την εντολή ταξινόμησης.