7 ενδιαφέροντα παραδείγματα εντολών «ταξινόμησης» Linux - Μέρος 2


Στο τελευταίο μας άρθρο, καλύψαμε διάφορα παραδείγματα της εντολής «ταξινόμηση». Εάν το χάσατε, μπορείτε να ενημερωθείτε ακολουθώντας τον παρακάτω σύνδεσμο. Σε αυτήν την ανάρτηση, θα συνεχίσουμε από εκεί που σταματήσαμε στο προηγούμενο άρθρο, για να καλύψουμε τις υπόλοιπες πτυχές της εντολής. Με αυτόν τον τρόπο, και τα δύο άρθρα μαζί θα χρησιμεύσουν ως ένας περιεκτικός οδηγός για την εντολή «ταξινόμηση» του Linux.

Προτού προχωρήσουμε περαιτέρω, δημιουργήστε ένα αρχείο κειμένου με το όνομα "month.txt" και συμπληρώστε το με τα δεδομένα που παρέχονται παρακάτω.

echo -e "mar\ndec\noct\nsep\nfeb\naug" > month.txt
cat month.txt

15. Ταξινόμηση του περιεχομένου του αρχείου ανά μήνα

Η ακόλουθη εντολή ταξινομεί τα περιεχόμενα του αρχείου "month.txt" με χρονολογική σειρά με βάση τη συντομογραφία ή το όνομα του μήνα χρησιμοποιώντας την επιλογή '-M' που δίνει οδηγίες στο "< Εντολήsort' για να αντιμετωπίζετε τα δεδομένα ως ημερομηνίες και να τα ταξινομείτε ανάλογα.

sort -M month.txt

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

Η ακόλουθη εντολή συνδυάζει τις εντολές "ls" και "sort" για την εκτέλεση δύο εργασιών. Αρχικά, παραθέτει τα περιεχόμενα του οικιακού καταλόγου του χρήστη σε μεγάλη μορφή και, στη συνέχεια, διοχετεύει αυτόν τον κατάλογο στην εντολή «ταξινόμηση» για να εκτυπώσει μεγέθη αρχείων σε μορφή αναγνώσιμη από τον άνθρωπο, διευκολύνοντας τον εντοπισμό των μεγαλύτερων και μικρότερων αρχείων σε τον κατάλογο.

ls -l /home/$USER | sort -h -k5

17. Έλεγχος ταξινομημένων αρχείων για συνέπεια

Στο προηγούμενο άρθρο, δημιουργήσαμε δύο αρχεία κειμένου: "sorted.txt" στο παράδειγμα 4 και "lsl.txt" στο παράδειγμα 6. Γνωρίζουμε ότι " Το sorted.txt" είναι ήδη ταξινομημένο, ενώ το "lsl.txt" δεν είναι.

Για να επαληθεύσουμε την κατάσταση ταξινόμησης και των δύο αρχείων, θα χρησιμοποιήσουμε την εντολή «sort», η οποία θα μας επιτρέψει να επιβεβαιώσουμε εάν το «sorted.txt» παραμένει στη σωστή σειρά και εάν το 'lsl.txt' απαιτεί ταξινόμηση.

sort -c sorted.txt

Εάν επιστρέψει 0, σημαίνει ότι το αρχείο είναι ταξινομημένο και δεν υπάρχει διένεξη.

sort -c lsl.txt

18. Χειρισμός οριοθέτων όταν δεν χρησιμοποιούνται κενά στο αρχείο

Εάν το οριοθέτη (διαχωριστικό) μεταξύ των λέξεων είναι κενό, η εντολή «ταξινόμηση» ερμηνεύει αυτόματα οτιδήποτε μετά από ένα οριζόντιο διάστημα ως νέα λέξη. Τι γίνεται όμως όταν ο οριοθέτης δεν είναι χώρος;

Σκεφτείτε ένα αρχείο κειμένου, τα περιεχόμενα του οποίου διαχωρίζονται με οτιδήποτε άλλο εκτός από κενό όπως '|' ή '\' ή '+' ή '.' ή ...

Δημιουργήστε ένα αρχείο κειμένου όπου τα περιεχόμενα διαχωρίζονται με +. Χρησιμοποιήστε την εντολή cat για να ελέγξετε τα περιεχόμενα του αρχείου.

echo -e "21+linux+server+production\n11+debian+RedHat+CentOS\n131+Apache+Mysql+PHP\n7+Shell Scripting+python+perl\n111+postfix+exim+sendmail" > delimiter.txt
cat delimiter.txt

Τώρα ταξινομήστε αυτό το αρχείο με βάση το πεδίο 1ο που είναι αριθμητικό.

sort -t '+' -nk1 delimiter.txt

Το δεύτερο βασίζεται στο πεδίο 4ο που είναι μη αριθμητικό.

Εάν ο διαχωριστής είναι Tab, μπορείτε να χρησιμοποιήσετε το $'\t' στη θέση του '+', όπως φαίνεται στο παραπάνω παράδειγμα.

19. Τυχαία ταξινόμηση εξόδου κατά μέγεθος αρχείου

Ταξινομήστε την έξοδο της εντολής ls -l για τον οικιακό σας κατάλογο με βάση την πέμπτη στήλη, η οποία αντιπροσωπεύει την «ποσότητα δεδομένων», με τυχαία σειρά.

ls -l /home/avi/ | sort -k5 -R 

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

Όπως είναι σαφές από τον Αριθμός κανόνα – 2 από το τελευταίο άρθρο, η εντολή ταξινόμηση προτιμά τις γραμμές που ξεκινούν με πεζούς χαρακτήρες έναντι των κεφαλαίων. Ελέγξτε επίσης το παράδειγμα 3 στο τελευταίο άρθρο, όπου η συμβολοσειρά "laptop" εμφανίζεται πριν από τη συμβολοσειρά "LAPTOP".

20. Παράκαμψη προεπιλεγμένων προτιμήσεων ταξινόμησης

Πώς να παρακάμψετε την προεπιλεγμένη προτίμηση ταξινόμησης; Για να μπορέσουμε να παρακάμψουμε την προεπιλεγμένη προτίμηση ταξινόμησης, πρέπει να εξαγάγουμε τη μεταβλητή περιβάλλοντος 'LC_ALL' σε 'C'.

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

export LC_ALL=C

Στη συνέχεια, ταξινομήστε το αρχείο κειμένου "tecmint.txt" παρακάμπτοντας την προεπιλεγμένη προτίμηση ταξινόμησης.

sort tecmint.txt

Μην ξεχάσετε να συγκρίνετε το αποτέλεσμα με αυτό που επιτύχατε στο παράδειγμα 3 και επίσης μπορείτε να χρησιμοποιήσετε την επιλογή "-f" γνωστός και ως "--ignore- case' για να έχετε πολύ οργανωμένο αποτέλεσμα.

sort -f tecmint.txt

21. Συνδυασμός δύο αρχείων εισόδου σε μια ενιαία λειτουργία

Τι θα λέγατε να εκτελείτε τη «ταξινόμηση» σε δύο αρχεία εισόδου και να τα συνδέσετε με μία κίνηση;

Ας δημιουργήσουμε δύο αρχεία κειμένου, συγκεκριμένα τα ‘file1.txt’ και ‘file2.txt’ και να τα συμπληρώσουμε με κάποια δεδομένα. Στο "file1.txt", θα προσθέσουμε αριθμούς όπως φαίνεται παρακάτω. Θα χρησιμοποιήσουμε επίσης την εντολή cat για να επιθεωρήσουμε το περιεχόμενο του αρχείου

echo -e “5 Reliable\n2 Fast\n3 Secure\n1 open-source\n4 customizable” > file1.txt
cat file1.txt

Και συμπληρώστε το δεύτερο αρχείο "file2.txt" με ορισμένα δεδομένα ως.

echo -e “3 RedHat\n1 Debian\n5 Ubuntu\n2 Kali\n4 Fedora” > file2.txt
cat file2.txt

Τώρα ταξινομήστε και συνδέστε την έξοδο και των δύο αρχείων.

join <(sort -n file1.txt) <(sort file2.txt)

συμπέρασμα

Συμπερασματικά, αυτό το άρθρο έχει εξερευνήσει διάφορες πτυχές της εντολής «ταξινόμηση» στο Linux. Ξεκινήσαμε με τη βασική ταξινόμηση με αλφαβητική σειρά, τολμήσαμε στην αριθμητική ταξινόμηση και την ταξινόμηση βάσει ημερομηνίας, και αγγίξαμε ακόμη και προσαρμοσμένους οριοθέτες. Μάθαμε επίσης πώς να παρακάμπτουμε τις προεπιλεγμένες προτιμήσεις ταξινόμησης για να ταιριάζουν στις ανάγκες μας.

Επιπλέον, συζητήσαμε τεχνικές για τον έλεγχο του εάν ένα αρχείο είναι ήδη ταξινομημένο και για το συνδυασμό λειτουργιών «ταξινόμησης» για πολλαπλά αρχεία εισόδου. Με τις γνώσεις που αποκτήσατε εδώ, έχετε στη διάθεσή σας ένα ισχυρό εργαλείο για την αποτελεσματική ταξινόμηση και οργάνωση δεδομένων σε περιβάλλον Linux.

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