Magaz, The Greek Linux Magazine
Magaz Logo

Επόμενο  Περιεχόμενα

1. Εισαγωγή

1.1 Ιστορικά

Η gawk, ή καλύτερα η GNU awk, είναι μιά από τις πιο καινούριες εκδόσεις της γλώσσας προγραμματισμού awk, η οποία είχε δημιουργηθεί για το περιβάλλον UNIX από τους Alfred Aho, Peter Weinberger και Brian Kernighan το 1977. Το όνομα awk προέρχεται από τα αρχικά γράμματα των επωνύμων των παραπάνω δημιουργών. Η σχεδίαση της awk φαίνεται στη διατριβή τους: "AWK - a pattern scanning and processing language" Software-Practice and Experience, Ιούλιος 1978. Η awk έχει την καταγωγή της σε ιδέες από την SNOBOL4, από την εντολή sed, από τα εργαλεία yacc και lex και από τη C. Επίσης, ο Kernighan είναι ένας από αυτούς που βοήθησε στη δημιουργία της C και του UNIX, ενώ οι άλλοι δύο βοήθησαν στη δημιουργία του UNIX. Για ακριβώς αυτούς τους λόγους, θα δείτε πολλές ομοιότητες μεταξύ της C και της awk. Υπάρχουν πολλές εκδόσεις της awk: η αυθεντική awk, η nawk, η POSIX awk και, φυσικά, η gawk, η οποία είναι βασισμένη στην POSIX awk.

1.2 Εφαρμογές

H awk, σε όλες τις εκδόσεις, είναι μια γλώσσα επεξεργασίας και σύγκρισης προτύπων (patterns) με μεγάλη δύναμη σε αυτόν τον τομέα. Μπορεί να ψάξει ένα ή περισσότερα αρχεία για εγγραφές (records) που ταιριάζουν μέ ένα δοσμένο πρότυπο. Όταν ταιριάξουν, μία καθορισμένη πράξη (action) εκτελείται. Σαν προγραμματιστής, δεν χρειάζεται να ανησυχείτε για το άνοιγμα, την επαναλαμβανόμενη ανάγνωση των εγγραφών ή το κλείσιμο ενός αρχείου. Αυτές οι λεπτομέρειες γίνονται αυτόματα για εσάς. Το να γράφετε μικρά awk προγράμματα είναι εύκολο λόγω της λειτουργικότητας της γλώσσας, πολλές διαδικασίες είναι αυτοματοποιημένες.

Θα βρείτε πολλές εφαρμογές για τη awk, όπως το να "διαβάζετε" δεδομένα από ένα αρχείο, να μετράτε συγκεκριμένες "υπάρξεις" μέσα σ' αυτό, αλλά και να δημιουργείτε εξειδικευμένες αναφορές (reports). Η γενική σύνταξη της awk μοιάζει πάρα πολύ/έχει πολλά κοινά σημεία με τη C. Εάν ήδη ξέρετε C, τότε γνωρίζετε αρκετά πράγματα από τη awk. Από πολλές απόψεις, η gawk είναι μία ευκολότερη "έκδοση" της C. Αν δεν γνωρίζετε C, τότε θα την μάθετε ευκολότερα αν ήδη γνωρίζετε awk.

ΣΗΜΕΙΩΣΗ: H awk δουλεύει με text αρχεία, όχι εκτελέσιμα. Επειδή τα εκτελέσιμα αρχεία περιέχουν χαρακτήρες που μοιάζουν με το τέλος εγγραφών (δηλαδή σύμβολα αλλαγής σειράς), η awk μπερδεύεται. Αν θέλετε να επεξεργαστείτε εκτελέσιμα αρχεία, τότε χρειάζεστε την Perl ή, φυσικά, μία από τις "πατροπαράδοτες" γλώσσες προγραμματισμού, όπως η C.

1.3 Δυνατότητες

Η awk είναι ευλύγιστη, όπως το UNIX περιβάλλον, περιλαμβάνει προκαθορισμένες μεταβλητές, αυτοματοποιεί πολλές από τις "διαδικασίες" του κλασσικού προγραμματισμού, παρέχει τη δυνατότητα των συμβατικών μεταβλητών, υποστηρίζει το μορφοποιημένο output της C και είναι εύκολη στη χρήση. Σας επιτρέπει να συνδυάσετε τα πλεονεκτήματα των shell scripts με πολλά στοιχεία της C. Να σημειώσω πως δεν χρειάζετε να ορίζετε τον τύπο μιάς μεταβλητής (σε αντίθεση με τη C), αφού η awk καταλαβαίνει τον τύπο τους όταν τις χρησιμοποιεί. Φυσικά, υποστηρίζει τους βρόγχους της C (if/else, do/while, for), αλλά δεν υποστηρίζει το switch/case. Παρόλα αυτά, υποστηρίζει το printf() της C, αλλά και την εντολή print, μιά απλούστερη (από την printf) εντολή.

Επόμενο  Περιεχόμενα


Valid HTML 4.01!   Valid CSS!