Διασκέδαση στο Linux Terminal - Παίξτε με μετρήσεις λέξεων και χαρακτήρων
Η γραμμή εντολών του Linux είναι πολύ διασκεδαστική και πολλές κουραστικές εργασίες μπορούν να εκτελεστούν πολύ εύκολα αλλά με την τελειότητα. Το παιχνίδι με τις λέξεις και τους χαρακτήρες, τη συχνότητά τους σε ένα αρχείο κειμένου κ.λπ. είναι αυτό που θα δούμε σε αυτό το άρθρο.
Η μόνη εντολή που έρχεται στο μυαλό μας, για να τροποποιήσουμε τη γραμμή εντολών του Linux για να χειριστούμε λέξεις και χαρακτήρες από ένα αρχείο κειμένου είναι η εντολή wc.
Μια εντολή «wc» που σημαίνει μέτρηση λέξεων είναι ικανή να εκτυπώσει νέα γραμμή, μετρήσεις λέξεων και byte από ένα αρχείο κειμένου.
Για να δουλέψουμε με τα μικρά σενάρια για την ανάλυση του αρχείου κειμένου, πρέπει να έχουμε ένα αρχείο κειμένου. Για να διατηρήσουμε την ομοιομορφία, δημιουργούμε ένα αρχείο κειμένου με την έξοδο της εντολής man, όπως περιγράφεται παρακάτω.
man man > man.txt
Η παραπάνω εντολή δημιουργεί ένα αρχείο κειμένου "man.txt" με το περιεχόμενο της εντολής "manual page" for "man".
Θέλουμε να ελέγξουμε τις πιο συνηθισμένες λέξεις, στο «Αρχείο κειμένου» που δημιουργήθηκε παραπάνω, εκτελώντας το παρακάτω σενάριο.
cat man.txt | tr ' ' '2' | tr '[:upper:]' '[:lower:]' | tr -d '[:punct:]' | grep -v '[^a-z]' | sort | uniq -c | sort -rn | head
Δείγμα εξόδου
7557
262 the
163 to
112 is
112 a
78 of
78 manual
76 and
64 if
63 be
Το παραπάνω απλό σενάριο δείχνει, δέκα λέξεις που εμφανίζονται πιο συχνά και τη συχνότητα εμφάνισής τους, στο αρχείο κειμένου.
Τι θα λέγατε να αναλύσετε μια λέξη σε άτομο χρησιμοποιώντας την ακόλουθη εντολή.
echo 'tecmint team' | fold -w1
Δείγμα εξόδου
t
e
c
m
i
n
t
t
e
a
m
Σημείωση: Εδώ, το '-w1' αντιστοιχεί στο πλάτος.
Τώρα θα αναλύσουμε κάθε λέξη σε ένα αρχείο κειμένου, θα ταξινομήσουμε το αποτέλεσμα και θα λάβουμε την επιθυμητή έξοδο με τη συχνότητα των δέκα πιο συχνών χαρακτήρων.
fold -w1 < man.txt | sort | uniq -c | sort -rn | head
Δείγμα εξόδου
8579
2413 e
1987 a
1875 t
1644 i
1553 n
1522 o
1514 s
1224 r
1021 l
Τι θα λέγατε να λαμβάνετε τους πιο συχνούς χαρακτήρες στο αρχείο κειμένου με διαφορετικά κεφαλαία και πεζά μαζί με τη συχνότητα εμφάνισής τους.
fold -w1 < man.txt | sort | tr '[:lower:]' '[:upper:]' | uniq -c | sort -rn | head -20
Δείγμα εξόδου
11636
2504 E
2079 A
2005 T
1729 I
1645 N
1632 S
1580 o
1269 R
1055 L
836 H
791 P
766 D
753 C
725 M
690 U
605 F
504 G
352 Y
344 .
Ελέγξτε την παραπάνω έξοδο, όπου περιλαμβάνεται το σημείο στίξης. Ας αφαιρέσουμε τα σημεία στίξης, με την εντολή "tr". Ορίστε:
fold -w1 < man.txt | tr '[:lower:]' '[:upper:]' | sort | tr -d '[:punct:]' | uniq -c | sort -rn | head -20
Δείγμα εξόδου
11636
2504 E
2079 A
2005 T
1729 I
1645 N
1632 S
1580 O
1550
1269 R
1055 L
836 H
791 P
766 D
753 C
725 M
690 U
605 F
504 G
352 Y
Τώρα έχω τρία αρχεία κειμένου, ας εκτελέσω το παραπάνω σενάριο γραμμής για να δούμε την έξοδο.
cat *.txt | fold -w1 | tr '[:lower:]' '[:upper:]' | sort | tr -d '[:punct:]' | uniq -c | sort -rn | head -8
Δείγμα εξόδου
11636
2504 E
2079 A
2005 T
1729 I
1645 N
1632 S
1580 O
Στη συνέχεια θα δημιουργήσουμε εκείνα τα σπάνια γράμματα που έχουν μήκος τουλάχιστον δέκα γράμματα. Εδώ είναι το απλό σενάριο.
cat man.txt | tr '' '2' | tr '[:upper:]' '[:lower:]' | tr -d '[:punct:]' | tr -d '[0-9]' | sort | uniq -c | sort -n | grep -E '..................' | head
Δείγμα εξόδου
1 ──────────────────────────────────────────
1 a all
1 abc any or all arguments within are optional
1 able see setlocale for precise details
1 ab options delimited by cannot be used together
1 achieved by using the less environment variable
1 a child process returned a nonzero exit status
1 act as if this option was supplied using the name as a filename
1 activate local mode format and display local manual files
1 acute accent
Σημείωση: Όλο και περισσότερες κουκκίδες στο παραπάνω σενάριο μέχρι να δημιουργηθούν όλα τα αποτελέσματα. Μπορούμε να χρησιμοποιήσουμε το .{10} για να λάβουμε δέκα αντιστοιχίες χαρακτήρων.
Αυτά τα απλά σενάρια, μας κάνουν επίσης να γνωρίζουμε λέξεις και χαρακτήρες που εμφανίζονται πιο συχνά στα Αγγλικά.
Αυτα για τωρα. Θα είμαι ξανά εδώ με ένα άλλο ενδιαφέρον και off the beat θέμα που αξίζει να γνωρίζετε, το οποίο θα λατρέψετε να διαβάσετε. Μην ξεχάσετε να μας δώσετε τα πολύτιμα σχόλιά σας στην ενότητα σχολίων, παρακάτω.
Διαβάστε επίσης: 20 Αστείες εντολές του Linux