Skip to main content

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

Coding Challenge #3: The Snake Game (Ιούνιος 2025)

Coding Challenge #3: The Snake Game (Ιούνιος 2025)
Anonim

Εισαγωγή

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

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

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

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

Για παράδειγμα, ας πάρουμε το τελευταίο τραπέζι του πρωταθλήματος από την Premier League της Σκωτίας πέρυσι και να αποθηκεύσουμε τα δεδομένα σε ένα αρχείο που ονομάζεται "spl".

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

ΟμάδαΓκολ σκορΓκολ κατάΣημεία
Celtic933186
Είδος σκωτσέζικου τερριέ624871
Καρδιές594065
St Johnstone585556
Motherwell476350
Ρος Κομητεία556148
Inverness544852
Νταντί535748
Partick415046
Χάμιλτον426343
Kilmarnock416436
Dundee United457028

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

Από εκείνο το τραπέζι, μπορείτε να δείτε ότι η Σέλτικ κέρδισε το πρωτάθλημα και ο 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

Περίληψη

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

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