Διασκέδαση στο 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