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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

FSM Toolkit Exercises

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

Galatia SIL Keyboard Information

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

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

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

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

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

C.S. 430 Assignment 6, Sample Solutions

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

Finite Field Problems: Solutions

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

2 Composition. Invertible Mappings

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

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

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

Η γλώσσα προγραμματισμού C

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

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

Εισαγωγή στον Προγραμματισμό

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

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

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

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

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

TMA4115 Matematikk 3

Example Sheet 3 Solutions

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

Διαδικασιακός Προγραμματισμός

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

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

Instruction Execution Times

ΑΛΕΞΑΝΔΡΟΣ ΠΑΛΛΗΣ SCHOOLTIME E-BOOKS

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

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

Η πρώτη παράμετρος είναι ένα αλφαριθμητικό μορφοποίησης

The Simply Typed Lambda Calculus

Fractional Colorings and Zykov Products of graphs

ΜΑΘΗΜΑ Στοίχιση Παραγράφων. 2. Εσοχές Παραγράφων ΣΤΟΧΟΙ:

Section 8.3 Trigonometric Equations

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

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

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

CHAPTER 25 SOLVING EQUATIONS BY ITERATIVE METHODS

ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ. Εισαγωγή στη Python

ΕΠΛ 003: ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ. Εισαγωγή στο Unix

Διάλεξη 1. Πράξεις Τελεστές Έλεγχος Ροής

PARTIAL NOTES for 6.1 Trigonometric Identities

Mεταγλωττιστές. 4 ο εργαστηριακό μάθημα Λεξική ανάλυση και flex. Θεωρία

Εξοικείωση με το πρόγραμμα DEV C++ Επικοινωνία Χρήστη - Υπολογιστή

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

Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η

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

DESIGN OF MACHINERY SOLUTION MANUAL h in h 4 0.

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ ΕΠΛ 035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. και Μηχ. Υπολ.

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

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

Αντικειμενοστραφής Προγραμματισμός I(5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η

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

iidoc Πρόγραμμα αυτόματης τεκμηρίωσης κώδικα C++

Εισαγωγή στην Επιστήμη Υπολογιστών. Εισαγωγή στην Python

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

Προγραμματισμός Η/Υ (ΤΛ2007 )

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

ΔΗΜΙΟΥΡΓΙΑ ΚΑΤΑΛΟΓΟΥ ΕΤΕΡΟΑΝΑΦΟΡΩΝ

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

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

Math 6 SL Probability Distributions Practice Test Mark Scheme

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 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. 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. 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. 6-9

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

SED (BRE vs ERE) BRE:.*[]^$\/ \+ \ \? BRE Char: \. \* \^ \$ \\ \/ +? ERE:.*[]^$\/ +? ERE Char: \. \* \^ \$ \\ \/ \+ \ \? BRE Syntax: sed $ echo "aab." sed -n '/a\+b\./p aab $ echo "aab+" sed -n '/a\+b+/p aab+ ERE Syntax: sed E echo "aab." sed -E -n '/a+b\./p aab. echo "aab+" sed -E -n '/a+b\+/p aab+ Δεν εκτυπώνει τις γραμμές που επεξεργάζεται η sed (απλά εκτυπώνει αυτά που αναγνωρίζονται από το pattern). 6-11

Αντικατάσταση (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. > 6-12

Αντικατάσταση (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 ENDOFLINE 6-13

Αντικατάσταση (Substitution) Παραδείγματα Παραδείγματα (Πολλαπλές εντολές) διαφορετικό από το sed E : 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-14

Αντικατάσταση (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-15

Αντικατάσταση (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-16

Κανονικές Εκφράσεις (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 SYN ETB CAN EM SUB ESC IS1 IS2 IS3 IS4 DEL. 6-19

Αντικατάσταση (Substitution): Απομνημόνευση Pattern με & Ειδικός χαρακτήρας & Any character ΝΟΤ whitespace (e.g., alphnumeric or symbols) $ 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-20

Αντικατάσταση (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. 6-21

Εκτύπωση (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. 6-22

Εκτύπωση (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. # Εκτύπωση γραµµών που µεταβλήθηκαν. 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-23

Εκτύπωση (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. Περιορισμός εκτέλεσης της εντολής μόνο στη γραμμή 4 2 η εμφάνιση του προτύπου στη γραμμή κειμένου που διαβάζεται 6-24

Εκτύπωση (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. 6-25

Περιορισμός Εκτέλεσης 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. Περιορίζει την αντικατάσταση στις γραμμές που ξεκινούν από # 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. 6-26

Περιορισμός Εκτέλεσης 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. 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. Θα δούμε σε λίγο πώς να αφαιρέσουμε τις κενές γραμμές 6-27

Διαγραφή (Delete) με /d εντολή: d (delete - διαγραφή) Παραδείγματα: No pattern, just range and command d διαγράφει ΟΛΕΣ τις γραμμές 6d διαγράφει τη γραμμή 6 /^$/d διαγράφει όλες τις κενές γραμμές /^\./d διαγράφει όλες τις γραμμές που ξεκινούν με. (lite) 1,10d διαγράφει τις γραμμές 1-10 1,/^$/d διαγράφει από τη 1 η γραμμή μέχρι και την πρώτη κενή γραμμή /^$/,$d διαγράφει από την πρώτη κενή γραμμή μέχρι και τη τελευταία γραμμή /^$/,10d γραμμή διαγράφει από την πρώτη κενή γραμμή μέχρι και την 10 η /^ya*y/,/[0-9]$/d διαγράφει από την πρώτη γραμμή που ξεκινά με το πρότυπο ya*y μέχρι και την πρώτη γραμμή που τελειώνει με το πρότυπο [0-9] ab*c matches "ac", "abc", "abbc", "abbbc", and so on. a.*c matches "ac", "a<any>c", "a<any><any>c", "a<any><any><any>c", and so on. 6-28

Διαγραφή (Delete) με /d Διαγραφή παράδειγμα bash-3.1$ cat example3.sed /* This is a comment * * */ This is the first line of an example text. 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. 6-29

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

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

Δομή Εντολής 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-33