Διάλεξη 6 Εργαλεία Ωφελιμότητας Unix: Sed

Σχετικά έγγραφα
Διάλεξη 6 Εργαλεία Ωφελιμότητας Unix: Sed

Στο εργαστήριο θα μελετηθούν: Διδάσκων: Γιώργος Χατζηπολλάς. Εργαστήριο 2: Εργαλεία Συστήματος UNIX. Ομάδες για παρουσίαση

Διάλεξη 7 Εργαλεία Ωφελιμότητας Unix: Αwk

Πρόβλημα 1: Αναζήτηση Ελάχιστης/Μέγιστης Τιμής

Εισαγωγή στα Λειτουργικά Συστήματα

Προγραμματισμός Ι (HY120)

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 6/5/2006

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ I

Προγραμματισμός Ι (ΗΥ120)

ΜΑΘΗΜΑ: ΕΙΑΓΩΓΗ ΣΑ ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ (UNIX) ΕΡΓΑΣΤΗΡΙΟ. 10o ΕΡΓΑΣΤΗΡΙΟ

HY340, 2009 Α. Σαββίδης Slide 2 / 26. HY340, 2009 Α. Σαββίδης Slide 3 / 26. HY340, 2009 Α. Σαββίδης Slide 4 / 26

*? [xyz] [^xy] [!0-9] [:alpha:] [:digit:]

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 19/5/2007

PERL. Δήμος Παύλου Δημήτρης Κουζαπάς

Τι είναι το Flex. Περιγραφή ενός λεξικογραφικού αναλυτή στη γλώσσα του lex/flex. Γενικά Χαρακτηριστικά του Flex

VBA ΣΤΟ WORD. 1. Συχνά, όταν ήθελα να δώσω ένα φυλλάδιο εργασίας με ασκήσεις στους μαθητές έκανα το εξής: Version ΗΜΙΤΕΛΗΣ!!!!

ΚΥΠΡΙΑΚΟΣ ΣΥΝΔΕΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY 21 ος ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ Δεύτερος Γύρος - 30 Μαρτίου 2011

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ - ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 133: ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΕΡΓΑΣΤΗΡΙΟ 3 Javadoc Tutorial

Λειτουργικά. Συστήματα Ι. Φ ρ ο ν τ ι σ τ ή ρ ι ο. Αριστείδης Ηλίας. Εργαστήριο Ηλεκτρονικών Υπολογιστών

Εργαστήριο 4: Εργαλεία Συστήματος UNIX. Διδάσκων: Γιώργος Χατζηπολλάς. Στο εργαστήριο θα μελετηθούν: Εργαστηριακή Άσκηση 2 Παραδείγματα χρήσης awk

Εισαγωγή στον Προγραμματισμό Εργαστήριο 3: Βοηθητικά προγράμματα του Linux CLI. Οκτώβριος 2014 Χ. Αλεξανδράκη Γ. Δημητρακάκης

Μερικές άλλες χρήσιμες εντολές

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 24/3/2007

Κεφάλαιο 1. Συστήματα αρίθμησης και αναπαράστασης

derivation of the Laplacian from rectangular to spherical coordinates

CHAPTER 25 SOLVING EQUATIONS BY ITERATIVE METHODS

FSM Toolkit Exercises

PARTIAL NOTES for 6.1 Trigonometric Identities

Λειτουργικά Συστήματα

Εισαγωγή στον Προγραμματισμό Εργαστήριο 3: Βοηθητικά προγράμματα του Linux CLI. Οκτώβριος 2014 Χ. Αλεξανδράκη Γ. Δημητρακάκης

C.S. 430 Assignment 6, Sample Solutions

2 Composition. Invertible Mappings

ΤΕΧΝΟΛΟΓΙΕΣ ΠΟΛΥΜΕΣΩΝ

The Simply Typed Lambda Calculus

Section 8.3 Trigonometric Equations

Phys460.nb Solution for the t-dependent Schrodinger s equation How did we find the solution? (not required)

(C) 2010 Pearson Education, Inc. All rights reserved.

Finite Field Problems: Solutions

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 11/3/2006

Regular Expressions ΓΛΩΣΣΙΚΉ ΤΕΧΝΟΛΟΓΊΑ

TMA4115 Matematikk 3

If we restrict the domain of y = sin x to [ π, π ], the restrict function. y = sin x, π 2 x π 2

Galatia SIL Keyboard Information

If we restrict the domain of y = sin x to [ π 2, π 2

Εργαστήριο 6 Ασκήσεις: To Εργαλείo Ωφελιμότητας Awk Προγραμματισμός Κελύφους Bash

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι

ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Τµήµα Μηχανικών Πληροφορικής ΤΕ Λειτουργικά Συστήµατα (Εργαστήριο) Διδάσκων: I. Τσακνάκης. 7ο Εργαστήριο

ΜΑΘΗΜΑ Προσθήκη Κειμένου. 2. Ελληνική Διάταξη Πληκτρολογίου ΣΤΟΧΟΙ:

ΧΑΡΟΚΟΠΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ

Κατανεμημένα Συστήματα. Javascript LCR example

Hancock. Ζωγραφάκης Ιωάννης Εξαρχάκος Νικόλαος. ΕΠΛ 428 Προγραμματισμός Συστημάτων

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι

3.4 SUM AND DIFFERENCE FORMULAS. NOTE: cos(α+β) cos α + cos β cos(α-β) cos α -cos β

Ψηφιακά Συστήματα. 2. Κώδικες

Κανονικές εκφράσεις ή παραστάσεις (Regular Expressions) 3 ο Εργαστήριο ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ - ΕΡΓΑΣΤΗΡΙΟ

(Regular Expressions) ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ: ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ/ ΧΕΙΜ

Προγραμματισμός Διαχείρισης Συστημάτων Ι

DESIGN OF MACHINERY SOLUTION MANUAL h in h 4 0.

Main source: "Discrete-time systems and computer control" by Α. ΣΚΟΔΡΑΣ ΨΗΦΙΑΚΟΣ ΕΛΕΓΧΟΣ ΔΙΑΛΕΞΗ 4 ΔΙΑΦΑΝΕΙΑ 1

Partial Trace and Partial Transpose

Φροντιστήριο 1ο Εισαγωγή στο FLEX. Flex. Regular Expressions (1/4)

Συστήματα Διαχείρισης Βάσεων Δεδομένων

Example Sheet 3 Solutions

Instruction Execution Times

HY150a Φροντιστήριο 3 24/11/2017

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΣΥΣΤΗΜΑΤΩΝ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΕΡΓΑΣΤΗΡΙΟ ΥΨΗΛΩΝ ΤΑΣΕΩΝ

Εισαγωγή στη Fortran. Μάθημα 1 ο. Ελευθερία Λιούκα

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ I

Εισαγωγή στα Λειτουργικά Συστήματα

Solutions to the Schrodinger equation atomic orbitals. Ψ 1 s Ψ 2 s Ψ 2 px Ψ 2 py Ψ 2 pz

Right Rear Door. Let's now finish the door hinge saga with the right rear door

Μερικές άλλες χρήσιμες εντολές

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ II. Υφαντόπουλος Νικόλαος Υποψήφιος Διδάκτορας Contact:

Partial Differential Equations in Biology The boundary element method. March 26, 2013

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι

ιαδικτυακές Εφαρµογές

Math 6 SL Probability Distributions Practice Test Mark Scheme

Μορφοποίηση υπό όρους : Μορφή > Μορφοποίηση υπό όρους/γραμμές δεδομένων/μορφοποίηση μόο των κελιών που περιέχουν/

How to register an account with the Hellenic Community of Sheffield.

Εργαστήριο ΤΟ ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑ UNIX

Srednicki Chapter 55

Μετατροπή χαρακτήρων ASCII σε ακέραιο αριθµό (atoi) & Άνοιγµα αρχείου µέσα από τo QtSPIM, διάβασµα, και αποθήκευση του περιεχοµένου του στη µνήµη

Chap. 6 Pushdown Automata

Λειτουργικά Συστήματα 5η εργαστηριακή άσκηση

Λειτουργικά Συστήματα

Εισαγωγή στον Προγραμματισμό Μάθημα 2: Οκτώβριος 2014 Χ. Αλεξανδράκη, Γ. Δημητρακάκης

4.6 Autoregressive Moving Average Model ARMA(1,1)

6.1. Dirac Equation. Hamiltonian. Dirac Eq.

Εισαγωγή στη Βιοπληροφορική

Every set of first-order formulas is equivalent to an independent set

Γλωσσική Τεχνολογία. String Handling Regular Expressions

ΕΠΛ232 Προγραμματιστικές Τεχνικές και Εργαλεία Δυναμική Δέσμευση Μνήμης και Δομές Δεδομένων (Φροντιστήριο)

[11] Υπολογιστικά συστήματα: Στρώματα. Περιεχόμενα. Εισαγωγή. επικοινωνία εφαρμογές λειτουργικό σύστημα προγράμματα υλικό

Εισαγωγή στην Επιστήμη της Πληροφορικής Εργαστήριο. UNIX Μέρος 2

Advanced Subsidiary Unit 1: Understanding and Written Response

ΕΙΣΑΓΩΓΗ ΣΤΗ ΣΤΑΤΙΣΤΙΚΗ ΑΝΑΛΥΣΗ

ΑΣΚΗΣΗ 2 -ΑΚΥΡΩΣΗ ΣΗΜΑΣΙΑΣ ΕΙΔΙΚΩΝ ΧΑΡΑΚΤΗΡΩΝ

Section 9.2 Polar Equations and Graphs

Homework 3 Solutions

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τμήμα Πληροφορικής

Transcript:

ΕΠΛ371 - Προγραμματισμός Συστημάτων Διάλεξη 6 Εργαλεία Ωφελιμότητας Unix: Sed Δημήτρης Ζεϊναλιπούρ 6-1

Επεξεργασία Ρεύματος sed (Stream EDitor) awk (Alfred Aho, Peter Weinberger, and Brian Kernighan) Επόμενη Διάλεξη Μελετήστε επίσης τα εγχειρίδια που υπάρχουν στην ιστοσελίδα και το man στο UNIX. 6-2

Επεξεργαστής Ρεύματος: sed Επεξεργαστής ρεύματος για φιλτράρισμα και μετασχηματισμό του κειμένου που διαβάζεται από το προκαθορισμένο ρεύμα εισόδου ή αρχείο ή από διοχέτευση. Γράφει τη μεταλλαγμένη μορφή του κειμένου στο προκαθορισμένο ρεύμα εξόδου ή σε αρχείο Αποδοτική τροποποίηση (φιλτράρισμα) εφόσον η είσοδος σαρώνεται ΜΟΝΟ μια φορά. 6-3

Ψευδοκώδικας Λειτουργίας while (read line){ 1) sed διαβάζει μια γραμμή εισόδου από το προκαθορισμένο ρεύμα εισόδου ή από αρχείο, μια-μια κάθε φορά, στο χώρο προτύπων (pattern space) pattern space = a data buffer = το υφιστάμενο κείμενο όπως επεξεργάζεται 2) H sed εκτελεί μια σειρά από εντολές επεξεργασίας (που έχουν προσδιοριστεί από το χρήστη) επάνω στο pattern space 3) Το pattern space γράφεται στο ρεύμα εξόδου } 6-4

Αντικατάσταση (Substitution) με την Sed Η πιο ουσιαστική εντολή της sed: s (substitution - αντικατάσταση) Σύνταξη: s/pattern/replacement/<flags> pattern: πρότυπο ανεύρεσης replacement: συμβολοσειρά αντικατάστασης του προτύπου flags: προαιρετικά g : καθολική (global): αντικατάσταση όλων των εμφανίσεων του προτύπου στη γραμμή που διαβάζεται (εναλλακτικά αλλάζεται μόνο η πρώτη εμφάνιση) p : εκτύπωση του περιεχομένου του pattern space n : ένας αριθμός από 1-512 που προσδιορίζει ποια εμφάνιση του προτύπου θα αντικατασταθεί 6-5

Αντικατάσταση (Substitution) Παραδείγματα Παραδείγματα: bash-3.1$ cat -n example.sed 1 This is the first line of an example text. 2 It is a text with erors. 3 Lots of erors. 4 So much erors, all these erors are making me sick. 5 This is a line not containing any errors. 6 This is the last line. 6-6

Αντικατάσταση (Substitution) Παραδείγματα Παραδείγματα: bash-3.1$ sed 's/erors/errors/' example.sed This is the first line of an example text. It is a text with errors. Lots of errors. Η δεύτερη εμφάνιση δεν μεταβάλλεται So much errors, all these erors are making me sick. This is a line not containing any errors. This is the last line. 6-7

Αντικατάσταση (Substitution) Παραδείγματα Παραδείγματα: αντικατάσταση όλων των εμφανίσεων του προτύπου στη γραμμή που διαβάζεται bash-3.1$ sed 's/erors/errors/g' example.sed This is the first line of an example text. It is a text with errors. Lots of errors. So much errors, all these errors are making me sick. This is a line not containing any errors. This is the last line. bash-3.1$ 6-8

Αντικατάσταση (Substitution) Παραδείγματα Παραδείγματα: 2 η εμφάνιση του προτύπου στη γραμμή κειμένου που διαβάζεται bash-3.1$ sed 's/erors/errors/2' example.sed This is the first line of an example text. It is a text with erors. Lots of erors. So much erors, all these errors are making me sick. This is a line not containing any errors. This is the last line. 6-9

Αντικατάσταση (Substitution) Παραδείγματα Παραδείγματα: Αντικατάσταση αρχής γραμμής κειμένου με τους χαρακτήρες "> " bash-3.1$ sed 's/^/> /' example.sed > This is the first line of an example text. > It is a text with erors. > Lots of erors. > So much erors, all these erors are making me sick. > This is a line not containing any errors. > This is the last line. 6-10

Αντικατάσταση (Substitution) Παραδείγματα Παραδείγματα: bash-3.1$ sed 's/$/ ENDOFLINE/' example.sed This is the first line of an example text. ENDOFLINE It is a text with erors. ENDOFLINE Lots of erors. ENDOFLINE τέλος γραμμής κειμένου που διαβάζεται So much erors, all these erors are making me sick. ENDOFLINE This is a line not containing any errors. ENDOFLINE This is the last line. ENDOFLINE 6-11

Αντικατάσταση (Substitution) Παραδείγματα Παραδείγματα (Πολλαπλές εντολές): bash-3.1$ sed -e 's/erors/errors/g' -e 's/last/final/g' example.sed ή sed 's/erors/errors/g; s/last/final/g' example.sed This is the first line of an example text. It is a text with errors. Lots of errors. So much errors, all these errors are making me sick. This is a line not containing any errors. This is the final line. 6-12

Αντικατάσταση (Substitution) Εναλλακτικοί Οριοθέτες Εάν χρειάζεται να γίνει χρήση του slash / (το οποίο χρησιμοποιείται ως οριοθέτης της sed) τότε υπάρχουν οι ακόλουθες εναλλακτικές επιλογές: Χρήση του escaped-slash (δηλ., \/) Π.χ., Εάν πρέπει να αλλάξει το /usr/local/bin σε common/bin: sed 's/\/usr\/local\/bin/\/common\/bin/ Χρήση άλλων οριοθετών: underscore, κόμμα, το ή το # sed 's#/usr/local/bin#/common/bin#' 6-13

Αντικατάσταση (Substitution) Ειδικοί Χαρακτήρες Χαρακτήρες που έχουν ειδική σημασία όταν χρησιμοποιούνται στο pattern:.*[ ]^$\ / Επομένως αντί: sed 's/[j.s. Bach {$ for music}]/[ba, J.S {$ for}]/' filename Χρησιμοποιείται: sed 's/\[j\.s\. Bach {\$ for music}\]/[ba, J.S {\$ for}]/' filename Εάν θέλουμε να χρησιμοποιούνται με την REGEX σημασιολογία τους στην SED απλά αναφέρουμε:.*[ ]^$\ / (Basic Regular Expression (BRE) [χρήση σε grep,sed,awk]. Το?, + και (GIF JPEG) είναι μέρος του Extended Regular Expression (ERE) [grep -e,egrep,awk] σετ. ΑΠΑΙΤΕΙ το ΕΠΛ «\» 371 για Προγραμματισμός την REGEX σημασιολογία Συστημάτων τους. 6-14

Αντικατάσταση (Substitution): Απομνημόνευση Pattern με & Ειδικός χαρακτήρας & Απομνημονεύει στο πρότυπο που έχει ταιριάξειβρεθεί για να επανα-χρησιμοποιηθεί. Επανάληψη χαρακτήρων a-z, Α-Ζ μια ή περισσότερες φορές bash-3.1$ sed 's/[a-zα-ζ]\+\./(&)/g' example.sed This is the first line of an example (text.) It is a text with (erors.) Lots of (erors.) So much erors, all these erors are making me (sick.) This is a line not containing any (errors.) This is the last (line.) χαρακτήρας 6-15

Κανονικές Εκφράσεις (Regular Expressions) POSIX Class Definitions Value Meaning [:digit:] Only the digits 0 to 9 [:alnum:] Any alphanumeric character 0 to 9 OR A to Z or a to z. [:alpha:] Any alpha character A to Z or a to z. [:blank:] Space and TAB characters only. [:xdigit:] Hexadecimal notation 0-9, A-F, a-f. [:punct:] Punctuation symbols., " '?! ; : # $ % & ( ) * + - / < > = @ [ ] \ ^ _ { } ~ [:print:] Any printable character. [:space:] Any whitespace characters (space, tab, NL, FF, VT, CR). Many system abbreviate as \s. [:graph:] Exclude whitespace (SPACE, TAB). Many system abbreviate as \W. [:upper:] Any alpha character A to Z. [:lower:] Any alpha character a to z. [:cntrl:] Control Characters NL CR LF TAB VT FF NUL SOH STX EXT EOT ENQ ACK SO SI DLE DC1 DC2 DC3 DC4 NAK ΕΠΛ 371 SYN Προγραμματισμός ETB CAN EM SUB Συστημάτων ESC IS1 IS2 IS3 IS4 DEL. 6-18

Αντικατάσταση (Substitution): Απομνημόνευση Pattern με & Ειδικός χαρακτήρας & Any character ΝΟΤ whitespace (i.e., some alphnumeric) $ sed 's/[^ ]\+/(&)/' example.sed (This) is the first line of an example text. (It) is a text with erors. (Lots) of erors. ΙΔΙΟ με /[^ ][^ ]*/ ή [^[:space:]]\+)... $ sed 's/[^ ][^ ]*/(&)/g' example.sed (This) (is) (the) (first) (line) (of) (an) (example) (text.) (It) (is) (a) (text) (with) (erors.) (Lots) (of) (erors.)... $ sed 's/[^ ]/(&)/' example.sed (T)his is the first line of an example text. (I)t is a text with erors. (L)ots of erors.... bash-3.1$ echo "123 abc" sed 's/[0-9]*/& &/' 123 123 abc 6-19

Αντικατάσταση (Substitution): Απομνημόνευση Πολλαπλών Patterns με /1, /2,.. Στα πλαίσια κανονικών εκφράσεων συχνά επιθυμούμαι να απομνημονεύουμε πολλαπλά patterns. Π.χ., Κάθε εμφάνιση της λέξης «is» να ανταλλάξει θέση με την λέξη «erors» (εφόσον εμφανίζονται και οι δυο λέξεις) sed 's/\(is\)\(.*\)\(erors\)/\3\2\1/g' a.txt Copy Copy Copy Display to Var1 to Var2 to Var3 Sequence This is the first line of an example text. It erors a text with is. Lots of erors. So much erors, all these erors are making me sick. This is a line not containing any errors. This is the last line. 6-20

Εκτύπωση (Print) με /p Εκτύπωση γραμμών που περιέχουν το πρότυπο Σημειώστε ότι εξ ορισμού εκτυπώνονται όλες οι γραμμές έκτος και εάν η sed πάρει το όρισμα n (silent mode, οπόταν εκτυπώνονται μόνο οι γραμμές που ικανοποιούν το πρότυπο) bash-3.1$ sed '/erors/p' example.sed This is the first line of an example text. It is a text with erors. It is a text with erors. Lots of erors. Lots of erors. So much erors, all these erors are making me sick. So much erors, all these erors are making me sick. This is a line not containing any errors. This is the last line. 6-21

Εκτύπωση (Print) με /p Δεν εκτυπώνει τις γραμμές που επεξεργαζεται η sed. bash-3.1$ sed -n '/erors/p' example.sed It is a text with erors. Lots of erors. So much erors, all these erors are making me sick. Προκαλεί την εκτύπωση των γραμμών που δεν έχουν βρεθεί bash-3.1$ sed -n '/erors/!p' example.sed This is the first line of an example text. This is a line not containing any errors. This is the last line. # Εκτύπωση γραμμών που μεταβλήθηκαν. bash-3.1$ sed -n 's/erors/errors/gp' example.sed It is a text with errors. Lots of errors. So much errors, all these errors are making me sick. Εκτύπωση των γραμμών που βρέθηκαν Χωρίς p δεν θα εμφάνιζε τίποτα λόγω του n (silent mode) 6-22

Εκτύπωση (Print) με /p Περιορισμός σε μια γραμμή κειμένου # Διόρθωση της δεύτερης εμφάνισης errors στη γραμμή 4. bash-3.1$ sed '4 s/erors/errors/g2' example.sed This is the first line of an example text. It is a text with erors. Lots of erors. So much erors, all these errors are making me sick. This is a line not containing any errors. This is the last line. Περιορισμός εκτέλεσης της εντολής μόνο στη γραμμή 4 2 η εμφάνιση του προτύπου στη γραμμή κειμένου που διαβάζεται 6-23

Εκτύπωση (Print) με /p Περιορισμός σε πεδίο γραμμών κειμένου το πεδίο γραμμών ορίζεται τοποθετώντας ένα κόμμα (,) μεταξύ των αριθμών. Περιορισμός εκτέλεσης της εντολής στις γραμμές 1-3 bash-3.1$ sed '1,3 s/erors/errors/g' example.sed This is the first line of an example text. It is a text with errors. Lots of errors. So much erors, all these erors are making me sick. This is a line not containing any errors. This is the last line. 6-24

Περιορισμός Εκτέλεσης Pattern Περιορισμός εκτέλεσης του pattern σε γραμμές που περιέχουν συγκεκριμένο πρότυπο bash-3.1$ cat example2.sed #This is the first line of an example text. #It is a text with erors. #Lots of erors. So much erors, all these erors are making me sick. This is a line not containing any errors. This is the last line. Περιορίζει την αντικατάσταση στις γραμμές που ξεκινούν από # bash-3.1$ sed '/^#/ s/erors/errors/g' example2.sed #This is the first line of an example text. #It is a text with errors. #Lots of errors. So much erors, all these erors are making me sick. This is a line not containing any errors. This is the last line. 6-25

Περιορισμός Εκτέλεσης Pattern Περιορισμός εκτέλεσης pattern μεταξύ START και STOP pattern sed /START/,/STOP/ command bash-3.1$ cat example3.sed /* This is a comment * * */ This is the first line of an example text. This is the last line. bash-3.1$ sed '/\/\*/,/\*\// s/.\+//' example3.sed Substitute one or more characters with nothing Or use delete: /.\+/d (see next) Πρότυπο που δείχνει την αρχή-πρώτη γραμμή για εκτέλεση της sed εντολής Πρότυπο που δείχνει το τέλος-τελευταία γραμμή εκτέλεσης της sed εντολής This is the first line of an example text. This is the last line. Θα δούμε σε λίγο πώς να αφαιρέσουμε τις κενές γραμμές 6-26

Διαγραφή (Delete) με /d εντολή: d (delete - διαγραφή) Παραδείγματα: No pattern, just range and command d διαγράφει ΟΛΕΣ τις γραμμές 6d διαγράφει τη γραμμή 6 /^$/d διαγράφει όλες τις κενές γραμμές /^\./d διαγράφει όλες τις γραμμές που ξεκινούν με. 1,10d διαγράφει τις γραμμές 1-10 1,/^$/d διαγράφει από τη 1 η γραμμή μέχρι και την πρώτη κενή γραμμή /^$/,$d διαγράφει από την πρώτη κενή γραμμή μέχρι και τη τελευταία γραμμή /^$/,10d διαγράφει από την πρώτη κενή γραμμή μέχρι και την 10 η γραμμή /^ya*y/,/[0-9]$/d διαγράφει από την πρώτη γραμμή που ξεκινά με το πρότυπο ya*y μέχρι και την πρώτη γραμμή που τελειώνει με το πρότυπο [0-9] 6-27

Διαγραφή (Delete) με /d Διαγραφή παράδειγμα bash-3.1$ cat example3.sed /* This is a comment * * */ This is the first line of an example text. This is the last line. Del pattern within Del empty START TO START..TO lines bash-3.1$ sed -e '/\/\*/,/\*\// s/.\+//' -e '/^$/d' example3.sed This is the first line of an example text. This is the last line. 6-28

Διαγραφή (Delete) με /d Διαγραφή των C comments και των tabs που εμφανίζονται στην αρχή κάθε γραμμής. bash-3.1$ cat example3spaces.sed /* This is a comment * * */ This is the first line of an example text. This is the last line. \t Del words within /* */ $sed -e '/\/\*/,/\*\// s/.\+//' -e 's/^[ \t]\+//' -e '/^$/d' example3spaces.sed This is the first line of an example text. This is the last line. Del one or more space tab Del empty lines Not same with'/^[ \t]\+/d', which 6-29 deletes the whole line

Εκτύπωση (Print) με /p Sed Range Command Results -------------------------------------------------------- sed -n 1,10 p Print first 10 lines sed -n 11,$!p Print first 10 lines sed 1,10!d Print first 10 lines sed 11,$ d Print first 10 lines -------------------------------------------------------- sed -n 1,10!p Print last 10 lines sed -n 11,$ p Print last 10 lines sed 1,10 d Print last 10 lines sed 11,$!d Print last 10 lines -------------------------------------------------------- sed -n 1,10 d Nothing printed sed -n 1,10!d Nothing printed sed -n 11,$ d Nothing printed sed -n 11,$!d Nothing printed -------------------------------------------------------- sed 1,10 p Print first 10 lines twice, Then next 10 lines once sed 11,$!p Print first 10 lines twice, Then last 10 lines once -------------------------------------------------------- sed 1,10!p Print first 10 lines once, Then last 10 lines twice sed 11,$ p ΕΠΛ 371 Προγραμματισμός Print first 10 lines Συστημάτων once, Εναλλακτικοί τρόποι διατύπωσης με p, d ============= Θεωρήστε ότι ένα αρχείο έχει 20 γραμμές 6-30

Δομή Εντολής sed sed <options> # επιλογές εκτέλεσης [FROM,[TO]] # περιορισμός εύρους εκτέλεσης (π.χ., εκτέλεση σε γραμμές 1,3) [command]/ pattern # εντολή εκτέλεσης π.χ., s # πρότυπο αναζήτησης (απλή ή επεκταμένη κανονική έκφραση) [/replacement] # αντικατάσταση προτύπου (προαιρετικό) [/option2] # επιπλέον επιλογές (προαιρετικό) / infilename # όνομα αρχείου επεξεργασίας (εναλλακτικά από STDIN) 6-31

Δομή Εντολής sed <options>: Επιλογές Εκτέλεσης: Επιλογή Επίδραση -e command Πολλαπλές Επιλογές Π.χ., -e 'cmd1' e 'cmd2' -e 'cmdn' -f SCRIPT-FILE Ανάγνωση Επιλογών από Αρχείο. Π.χ., # This file is named "sample.sed" # comments appear at the beginning s/color/colour/g s/flavor/flavour/g s/theater/theatre/g # Remember to chmod u+x sample.sed -n Silent mode (only print lines specified with the print command). By default each processed line is displayed on STDOUT. 6-32

Δομή Εντολής sed options2: Επιπλέον Επιλογές Εντολή /pattern/d To del. pattern (not complete line): s/pattern//g /pattern/p ή /pattern/!p (! Means NOT for all options2) '1,10 q quit, ignore lines s/pattern/replacement/g (Replace every pattern with replacement string) /r filename ή /w filename (εάν και μπορεί να γίνει με ανακατεύθυνση, διοχέτευση) Αποτέλεσμα Delete lines with pattern Print (don t print) lines with pattern (like grep!) Quit (Ignore given lines) Global Replacement Read from / Write to a file 6-33

Δομή Εντολής sed Αναδρομικότητα της Sed; H εντολή sed ΔΕΝ είναι αναδρομική. Επομένως, η ακόλουθη εντολή ΔΕΝ θα καταλήξει σε ένα ατέρμον βρόχο επανάληψης sed 's/loop/loop the loop/g' <old >new Το πιο πάνω θα αντικαταστήσει απλά την κάθε εμφάνιση της λέξης loop με loop the loop από αριστερά δεξιά 6-34