Εργαστήριο Λειτουργικών Συστημάτων Φροντιστήριο 3– sed και awk Ντίρλης Νικόλαος.

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
UNIX.
Advertisements

Pivot a time travel.
ΕΙΣΑΓΩΓΗ ΣΤΟ DOS (Disk Operating System)
ΛΟΓΙΣΜΙΚΟ.
Βάσεις Δεδομένων.
Βασικές Αρχές Ψηφιακής Τεχνολογίας
POINTERS, AGGREGATION, COMPOSITION. POINTERS TO OBJECTS.
Λειτουργικά συστήματα
1 Στοιχεία Θεωρίας Συνόλων Πολυσύνολα. 2 Εισαγωγή •Σύνολο είναι μία συλλογή διακεκριμένων αντικειμένων •Ωστόσο, υπάρχουν περιπτώσεις στις οποίες συναντάμε.
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Να καταργήσουμε τη ΓΛΩΣΣΑ και να κρατήσουμε μόνο την ψευδογλώσσα
ΜΑΘ3122/106 Γλώσσα Προγραμματισμού
Εργαστήριο Λειτουργικών Συστημάτων Φροντιστήριο 2– Εισαγωγή στη Bash Ντίρλης Νικόλαος.
OpenOffice Απο τον: Ανδρέα Μπουράκη Msc in Distributed Systems Engineering
File Management και I/O στο UNIX
Εισαγωγή στο UNIX και άλλα εργαλεία Pedro Trancoso Γιαννάκης Σαζεϊδης.
Έλεγχος Πρόσβασης σε Δεδομένα: Νέες Προκλήσεις και Λύσεις Νίκος Φωτίου Εργαστήριο Ασυρμάτων Δικτύων και Πολυμεσικών Επικοινωνιών.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Συλλογές.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Σύνθεση αντικειμένων Παράδειγμα: Τμήμα πανεπιστημίου.
Γνωριμία με το Λογισμικό του Η/Υ
Entity-Relationship Παραδείγματα Πληροφοριακά Συστήματα και Βάσεις Δεδομένων Φροντιστήριο 1 Δαμιανός Χατζηαντωνίου.
Βάσεις Δεδομένων Μάθημα 4.
1 Ολυμπιάδα Πληροφορικής Μάθημα 3. 2 Στόχοι μαθήματος Δομή Επανάληψης Εντολή while Εντολή for.
Η Δομή Επανάληψης Από τη Δομή Επανάληψης Για στην Όσο Η παρουσίαση της εντολής Όσο είναι από την εισήγηση των κ. Σ. Δουκάκη και Π. Τσιωτάκη στο 3ο Συνέδριο.
ΕΝΟΤΗΤΑ 2: ΤΟ ΛΟΓΙΣΜΙΚΟ ΤΟΥ ΥΠΟΛΟΓΙΣΤΗ
Γνωριμία με το Λογισμικό του Υπολογιστή 5 ο Κεφάλαιο.
Δομές Δεδομένων.
ΠΛΗΡΟΦΟΡΙΑΚΑ & ΤΗΛΕΠΙΚΟΙΝΩΝΙΑΚΑ ΣΥΣΤΗΜΑΤΑ 2η Εργασία Μαθήματος Γιώργος Γιαγλής Οικονομικό Πανεπιστήμιο Αθηνών Τμήμα Διοικητικής Επιστήμης & Τεχνολογίας.
Επικοινωνία Ανθρώπου Μηχανής HTML CGI JAVASCRIPT Κουμπούλης Χρήστος Α.Μ. 921 Χαλαβαζής Βασίλης Α.Μ. 988.
ΕΝΟΤΗΤΑ 2 – Κεφάλαιο 5: To λογισμικό του υπολογιστή
ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ (ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ - ΣΥΝΑΡΤΗΣΕΙΣ) Καλλονιάτης Χρήστος Επίκουρος Καθηγητής Τμήμα Πολιτισμικής Τεχνολογίας.
Δομή επιλογής Η δομή επιλογής είναι μια ολοκληρωμένη πρόταση η οποία περικλείει μια συνθήκη και δύο ομάδες εντολών, από τις οποίες θα εκτελεστούν, η μεν.
Copyright © 2006 – Quality & Reliability SA PL/SQL TRIGGERS ΜΕΡΟΣ 1.
ΧΡΗΣΗ ΤΟΥ ΛΟΓΙΣΜΙΚΟΥ PERIOD04 ΓΙΑ ΤΗΝ ΕΥΡΕΣΗ ΣΥΧΝΟΤΗΤΩΝ ΑΝΑΠΑΛΣΗΣ ΠΑΛΛΟΜΕΝΩΝ ΑΣΤΕΡΩΝ Αλέξιος Λιάκος, M.Sc.
Εισαγωγή στο Linux/Unix Εργαστηριακή Άσκηση 3 Η/Υ 1 ο έτος Γρ. Αμούτζιας.
Εισαγωγή στην Πληροφορική και στην διαχείριση μεγάλου όγκου δεδομένων Γρηγόριος Αμούτζιας Επικ. Καθηγητής Βιοπληροφορικής στη Γενωμική Τμήμα Βιοχημείας.
Τεχνολογικό Εκπαιδευτικό Ίδρυμα Θεσσαλίας Αντικειμενοστραφής Προγραμματισμός Ι Ενότητα 9: Κληρονομικότητα. Διδάσκων: Νικόλαος Θ Λιόλιος, Καθηγητής. Τμήμα.
ΣΚΟΠΟΣ Η απευθείας εισαγωγή δεδομένων στο SAS χωρίς να χρειάζεται η πληκτρολόγησή τους Τα δεδομένα πρέπει να είναι κυρίως Excel, Access, Lotus, dbase.
ΚΕΦΑΛΑΙΟ Το αλφάβητο της ΓΛΩΣΣΑΣ
1. 1.Δημιουργία Νέου Αρχείου Επιλέγουμε καρτέλα File, πατούμε στην εντολή New και μετα αφου διαλέξουμε τον τύπo αρχείου (π.χ Blank Document), πατούμε.
Γνωριμία με το Λογισμικό του υπολογιστή Μια παρουσίαση για τους μαθητές της Α΄ Τάξης του 49ου Γυμνασίου Αθήνας Διδάσκων: Χ. Μοτσενίγος 49ο Γυμνάσιο Αθήνας.
Μάθημα 1ο. Σχεδίαση Γραφικών Adobe Illustrator Σχεδίαση Διανυσματικών Γραφικών Δηλαδή αποτελούνται από γραμμές και καμπύλες που ορίζονται από μαθηματικά.
Ελληνοποίηση Λογισμικού Διαχείρισης Έργων “OpenProj”
Ενότητα 1 : Το σύστημα βάσεων δεδομένων MySQL (1) Ιωάννης Τσούλος
Μαθαίνω με “υπότιτλους”
ΤΙΤΛΟΣ ΕΡΓΑΣΙΑΣ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ανδρέου Βασίλης.
Αρχεσ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Η/Υ ΤΑξη Β΄
ΑΛΓΟΡΙΘΜΟΣ ΠΡΟΒΛΗΜΑ ΑΛΓΟΡΙΘΜΟΣ ΛΥΣΗ
Prolog Επεξεργασία και Αναπαράσταση Γνώσης Εισαγωγή
ΕΡΓΑΣΤΗΡΙΟ: ΧΡΟΝΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΕΡΓΩΝ
Ειδικές διαλέξεις 1: Εισαγωγή στο tecplot
Οδηγίες εγκατάστασης Windows XP
Παιδαγωγική Συνεδρία Λυκείου Αγ. Νικολάου 15/11/2010
1. Πώς ανοίγουμε ένα αποθηκευμένο βιβλίο εργασίας;
Αρχεία και φάκελοι.
Κανονικοπηση(normalization)
Εισαγωγή στην Πληροφορική μεγάλου όγκου δεδομένων
Σχεδίαση Γραφικών Μάθημα 1ο.
ΔΕΔΟΜΕΝΑ – ΠΛΗΡΟΦΟΡΙΕΣ ΠΛΗΡΟΦΟΡΙΚΗ
RIPASSO 3.
Εφαρμογές Υπολογιστών Ά Τεχνολογικού Λυκείου Κεφ
Msc in Distributed Systems Engineering
Κανονικές εκφράσεις ή παραστάσεις (Regular Expressions)
Εντολές επεξεργασίας κειμένου (text) : sed (stream ή script editor), cut, paste, tr, sort, uniq Εντολές αναζήτησης : file, find 6ο ΕΡΓΑΣΤΗΡΙΟ ΛΕΙΤΟΥΡΓΙΚΑ.
Κανονικοποίηση 1η, 2η και 3η Κανονική Μορφή
ΕΡΓΑΣΤΗΡΙΟ ΠΛΗΡΟΦΟΡΙΚΗΣ
Από τη Δομή Επανάληψης Για στην Όσο
ΕΡΓΑΣΤΗΡΙΟ: ΧΡΟΝΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΕΡΓΩΝ
ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ Λογισμικό Λειτουργικό σύστημα Λογισμικό συστήματος
Μεταγράφημα παρουσίασης:

Εργαστήριο Λειτουργικών Συστημάτων Φροντιστήριο 3– sed και awk Ντίρλης Νικόλαος

Γρήγορη Επανάληψη  Χρησιμοποιουμε το επιθεμα “>” για την προωθηση σε καποιο αρχειο  Χρησιμοποιουμε το επιθεμα “<“ για την προωθηση ενος αρχειου ως εισοδο  Χρησιμοποιουμε το επιθεμα “|” για να προωθησουμε την εξοδο μιας εντολης στην εισοδο μιας αλλης  Μπορουμε να εκτελεσουμε εντολες σειριακα διαχωριζοντας τις εντολες με “;”  Μπορουμε να εκτελεσουμε εντολες παραλληλα διαχωριζοντας τις εντολες με “&”

sed και awk  sed is a stream editor. A stream editor is used to perform basic text transformations on an input stream  Awk is an interpreted programming language designed for text processing and typically used as a data extraction and reporting tool. awk ‘BEGIN { print “Hello World” } ‘

Comma Separated Values file (CSV)  Τα αρχεία CSV είναι αρχεία απλού κειμένου (plain text) που αποτελούνται από εγγραφές (records) διαχωριζόμενες μεταξύ τους με line breaks.  Η κάθε εγγραφή σε ένα CSV αποτελείται από πεδία (fields) που διαχωρίζονται μεταξύ τους με κόμμα (“,”) ή κάποιον άλλο χαρακτήρα ( πχ tab) διαφορετικό όμως από line break.  Τα CSV αρχεία χρησιμοποιούνται ευρέως σε πλήθος εμπορικών και επιστημονικών εφαρμογών.

The “EOL – Problem”  Όπως είπαμε, σε ένα CSV έχουμε εγγραφές που διαχωρίζονται μεταξύ τους με line breaks ή διαφορετικά με χαρακτήρες EOL (End Of Line).  Σε διαφορετικά λειτουργικά συστήματα οι χαρακτήρες EOL μπορεί να διαφέρουν και έτσι να δημιουργείται πρόβλημα για παράδειγμα αν θέλουμε να κάνουμε compile ένα αρχείο με κώδικα γραμμένο σε Notepad++ σε περιβάλλον Windows σε ένα περιβάλλον Unix.  Το πρόβλημα αυτό μπορεί να ξεπεραστεί με πολλούς τρόπους. Για παράδειγμα με την εντολή dos2unix ( ή unix2dos) σε Unix ή χρησιμοποιώντας κάποιες δυνατότητες που μας δίνουν editors ( όπως το Notepad++) να αποθηκεύσουμε το κείμενό μας σε περιβάλλον διαφορετικού ΛΣ από αυτού που τρέχουμε τον editor.

The “EOL – Problem” με χρήση awk  Μπορούμε να χρησιμοποιήσουμε και sed ή awk για να λύσουμε το EOL-Problem: # UNIX to DOS (adding CRs on Linux and BSD based OS that haven't GNU extensions) $ awk '{sub("$","\r\n"); printf("%s",$0);}' inputfile > outputfile # DOS to UNIX (removing CRs on Linux and BSD based OS that haven't GNU extensions) $ awk '{gsub("\r",""); print;}' inputfile > outputfile

The “EOL – Problem” με χρήση sed # UNIX to DOS (adding CRs on Linux based OS that use GNU extensions) $ sed -e 's/$/\r/' inputfile > outputfile # DOS to UNIX (removing CRs on Linux based OS that use GNU extensions) $ sed -e 's/\r$//' inputfile > outputfile Φυσικά και άλλες λύσεις είναι πιθανές, όπως η χρησιμοποίηση perl: $ perl -pe 's/\r?\n|\r/\r\n/g' inputfile > outputfile # Convert to DOS $ perl -pe 's/\r?\n|\r/\n/g' inputfile > outputfile # Convert to UNIX $ perl -pe 's/\r?\n|\r/\r/g' inputfile > outputfile # Convert to old Mac

Επεξεργασία CSV με χρήση sed/awk (1)  Έστω ότι έχουμε το παρακάτω CSV που ονομάζεται grades.txt το οποίο περιέχει ονόματα φοιτητών με το ΑΜ τους και τον βαθμό τους σε ένα συγκεκριμένο μάθημα : 6945,Christian Novack,4 6946,Esmeralda Coman,7 6947,Tanisha Acoff,6 6948,Carlene Tejera,8 6949,Guy Hinchman,1 6950,Allan Munyon,2 6951,Darcy Magallan,2 6952,Cody Ruud,7 6953,Clinton Bonneau,9 6954,Julio Kieser,2 6955,Nita Klemme,3

Επεξεργασία CSV με χρήση sed/awk (2)  Ας θεωρήσουμε πως θέλουμε να κάνουμε μια σειρά αλλαγών στο αρχείο αυτό.  Έστω πως θέλουμε να αλλάξουμε το τρίτο όρισμα που είναι ο βαθμός. Ενδεικτικά ο ψευδοκώδικας για κάτι τέτοιο θα ήταν : Διάβασε "Enter student's AM: " am Διάβασε "Enter the new grade of student with $am: " new_grade old= παλιός βαθμός φοιτητή // με grep βρίσκω το record στο CSV και με awk το σωστό field Εκτύπωσε "The previous grade was: " $old sed – Βάλε τα νέα δεδομένα στο σωστό field Εκτύπωσε "Updated students data: "

Επεξεργασία CSV με χρήση sed/awk (3)  Απλή εκτύπωση στοιχείων ( πχ ΑΜ φοιτητή ): Διάβασε "Enter a students AM: " am Εκτύπωσε "Students data:" // με cat στο αρχείο και grep ^$am

Επεξεργασία CSV με χρήση sed/awk (4)  Αποθήκευση σε νέο αρχείο Διάβασε "Enter a path, to save the file: " NEWPATH Αν [ "$NEWPATH" == "" ] ; Τότε Αποθήκευσε // με τη βοήθεια της sed Αλλιώς export NEWPATH Τέλος _ Αν