Πώς να γράψετε σενάρια χρησιμοποιώντας τη γλώσσα προγραμματισμού Awk - Μέρος 13


Από την αρχή της σειράς Awk μέχρι το Μέρος 12, γράφαμε μικρές εντολές και προγράμματα Awk στη γραμμή εντολών και σε σενάρια φλοιού αντίστοιχα.

Ωστόσο, η Awk, όπως και η Shell, είναι επίσης μια ερμηνευτική γλώσσα, επομένως, με όλα όσα έχουμε διαβάσει από την αρχή αυτής της σειράς, μπορείτε πλέον να γράφετε εκτελέσιμα σενάρια Awk.

Παρόμοια με τον τρόπο που γράφουμε ένα σενάριο φλοιού, τα σενάρια Awk ξεκινούν με τη γραμμή:

#! /path/to/awk/utility -f 

Για παράδειγμα, στο σύστημά μου, το βοηθητικό πρόγραμμα Awk βρίσκεται στο /usr/bin/awk, επομένως, θα ξεκινούσα ένα σενάριο Awk ως εξής:

#! /usr/bin/awk -f 

Εξηγώντας την παραπάνω γραμμή:

  1. #! – αναφέρεται ως Shebang, το οποίο καθορίζει έναν διερμηνέα για τις οδηγίες σε ένα σενάριο
  2. /usr/bin/awk – είναι ο διερμηνέας
  3. -f – επιλογή διερμηνέα, που χρησιμοποιείται για την ανάγνωση ενός αρχείου προγράμματος

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

vi script.awk

Και επικολλήστε τον παρακάτω κώδικα στο αρχείο:

#!/usr/bin/awk -f 
BEGIN { printf "%s\n","Writing my first Awk executable script!" }

Αποθηκεύστε το αρχείο και βγείτε και, στη συνέχεια, κάντε το σενάριο εκτελέσιμο εκδίδοντας την παρακάτω εντολή:

chmod +x script.awk

Στη συνέχεια, εκτελέστε το:

./script.awk
Δείγμα εξόδου
Writing my first Awk executable script!

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

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

Επομένως, μπορείτε να συμπεριλάβετε σχόλια στο παραπάνω σενάριο ως εξής.

#!/usr/bin/awk -f 

#This is how to write a comment in Awk
#using the BEGIN special pattern to print a sentence 

BEGIN { printf "%s\n","Writing my first Awk executable script!" }

Στη συνέχεια, θα δούμε ένα παράδειγμα όπου διαβάζουμε είσοδο από ένα αρχείο. Θέλουμε να αναζητήσουμε έναν χρήστη συστήματος με το όνομα aaronkilik στο αρχείο λογαριασμού, /etc/passwd και μετά να εκτυπώσουμε το όνομα χρήστη, το ID χρήστη και τον χρήστη GID ως εξής:

Παρακάτω είναι το περιεχόμενο του σεναρίου μας που ονομάζεται second.awk.

#! /usr/bin/awk -f 

#use BEGIN sepecial character to set FS built-in variable
BEGIN { FS=":" }

#search for username: aaronkilik and print account details 
/aaronkilik/ { print "Username :",$1,"User ID :",$3,"User GID :",$4 }

Αποθηκεύστε το αρχείο και βγείτε, κάντε το σενάριο εκτελέσιμο και εκτελέστε το ως εξής:

chmod +x second.awk
./second.awk /etc/passwd
Δείγμα εξόδου
Username : aaronkilik User ID : 1000 User GID : 1000

Στο τελευταίο παράδειγμα παρακάτω, θα χρησιμοποιήσουμε τη δήλωση do while για να εκτυπώσουμε αριθμούς από 0-10:

Παρακάτω είναι το περιεχόμενο του σεναρίου μας που ονομάζεται do.awk.

#! /usr/bin/awk -f 

#printing from 0-10 using a do while statement 
#do while statement 
BEGIN {
#initialize a counter
x=0

do {
    print x;
    x+=1;
}
while(x<=10)
}

Αφού αποθηκεύσετε το αρχείο, κάντε το σενάριο εκτελέσιμο όπως κάναμε πριν. Στη συνέχεια, εκτελέστε το:

chmod +x do.awk
./do.awk
Δείγμα εξόδου
0
1
2
3
4
5
6
7
8
9
10

Περίληψη

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

Όπως ανέφερα από την αρχή, η Awk είναι μια πλήρης γλώσσα επεξεργασίας κειμένου, για το λόγο αυτό, μπορείτε να μάθετε περισσότερες άλλες πτυχές της γλώσσας προγραμματισμού Awk, όπως περιβαλλοντικές μεταβλητές, πίνακες, συναρτήσεις (ενσωματωμένες και καθορισμένες από το χρήστη) και άλλα.

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

Σύνδεσμοι αναφοράς: Ο Οδηγός χρήστη του GNU Awk και ο προγραμματισμός γλώσσας AWK

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