1 © 2005-2007 F. Pedullà, M. VerolaAA 2007-2008 Espressioni Regolari LSO1 Modulo 2 - Sezione B Espressioni Regolari Laboratorio di Sistemi Operativi I.

Slides:



Advertisements
Presentazioni simili
Primary Italian Saying How You Are.
Advertisements

Trieste, 26 novembre © 2005 – Renato Lukač Using OSS in Slovenian High Schools doc. dr. Renato Lukač LinuxDay Trieste.
Prof. Stefano Bistarelli
Shell: variabili di sistema PATH HOME USER PWD SHELL HOSTNAME HOSTTYPE Per visualizzare il valore di tutte le variabili dambiente si usa il comando set.
Teoria e Tecniche del Riconoscimento
They will read I will study She will walk the dog You guys will win the game!
Each student will be able to ask an adult or stranger: What do you like to do? and What dont you like to …?
© and ® 2011 Vista Higher Learning, Inc.4B.1-1 Punto di partenza Italian uses two principal tenses to talk about events in the past: the passato prossimo.
Sta andando meglio? oppure ti senti uguale? Is it getting better? Or do you feel the same?
Il presente del congiuntivo (the present subjunctive)
Il presente del congiuntivo (the present subjunctive)
Queuing or Waiting Line Models
Chistmas is the most loved holiday of the years. Adults and children look forward to Chistmas and its magical atmosphere. It is traditional to decorate.
Sistemi Operativi - Introduzione 1 Il sistema operativo UNIX Dettagli e comandi avanzati Niccolò Battezzati Politecnico di Torino Dip. Automatica e Informatica.
Players: 3 to 10, or teams. Aim of the game: find a name, starting with a specific letter, for each category. You need: internet connection laptop.
Guardate le seguenti due frasi:
La Gioconda was painted by which Italian renaissance artist? a) Raphael b) Leonardo da Vinci c) Caravaggio d) Michelangelo.
Passato Prossimo. What is it?  Passato Prossimo is a past tense and it is equivalent to our:  “ed” as in she studied  Or “has” + “ed” as in she has.
Italian 1 -- Capitolo 2 -- Strutture
I giorni della settimana
Love, Love, Love. Love, Love, Love. Love, Love, Love. There's nothing you can do that can't be done. Nothing you can sing that can't be sung. Nothing.
MyEconLab_Univerità degli studi di Milano, corso Prof.ssa Valentina Raimondi How to Access MyEconLab 1.
Capitolo 14 Il presente del congiuntivo (the present subjunctive)
Contare e ordinare files di testo Per contare i caratteri, le righe e le parole in un file di testo wc (word count) % wc human_proteins.fa Conta le parole.
Ancora sulla shell. Shell e comandi La shell e' un programma che interpreta i comandi dell'utente. I comandi possono essere dati da terminale, oppure.
Each student will be able to ask an adult or stranger: What do you like to do? and What don’t you like to …?
Progetti 2015/2016. Proj1: Traduzione di regole snort in regole iptables Snort: – analizza i pacchetti che transitano in rete, confrontandoli con un database.
Il mondo di Nineteen Eighty-Four
STMan Advanced Graphics Controller. What is STMan  STMan is an advanced graphic controller for Etere automation  STMan is able to control multiple graphics.
Script bash I file di comandi in Linux. BASH  Bourne Again Shell  Modalità interattiva o batch (file di comandi)  Ambiente di programmazione “completo”
Silvia Minardi, Pavia 14 December maps and directions hours.
Nessuno può servire due padroni:perché, o amerà l’uno e odierà l’altro oppure preferirà il primo e disprezzerà il secondo. Non potete servire Dio e i.
MSc in Communication Sciences Program in Technologies for Human Communication Davide Eynard Facoltà di scienze della comunicazione Università della.
TeNG Linguaggio per la generazione di English Test Donato Cataldo Università di Bologna, facoltà di ingegneria Linguaggi e Modelli Computazionali '09/'10.
1 © F. Pedullà, M. VerolaAA La shell LSO1 Modulo 2: La shell Laboratorio di Sistemi Operativi I Anno Accademico Francesco.
What time does the plane leave? At 12:45 1.
1 © F. Pedullà, M. VerolaAA vi e sed LSO1 Modulo 2 - Appendice 3 L'editor vi e cenni su sed Laboratorio di Sistemi Operativi I Anno.
1 © F. Pedullà, M. VerolaAA Comandi Esterni LSO1 Modulo 2 - Appendice 2 Breve rassegna di comandi (esterni) in ambiente Linux Laboratorio.
1 © F. Pedullà, M. VerolaAA Introduzione alle system call LSO1 Modulo 4: Sezione A Introduzione alle system call Laboratorio di Sistemi.
INTRODUZIONE A MATLAB/OCTAVE MANOLO VENTURIN UNIVERSITÀ DEGLI STUDI DI PADOVA DIP. DI MATEMATICA PURA ED APPLICATA A. A. 2007/2008.
1 © F. Pedullà, M. VerolaAA Pipe e FIFO LSO1 Modulo 9 Pipe e FIFO Laboratorio di Sistemi Operativi I Anno Accademico Francesco.
1 © 2007 Renzo Davoli, Alberto Montresor, Mauro Morsiani Laboratorio di Sistemi Operativi Anno Accademico AMIKaya: criteri di valutazione del.
PANNON GÉP PANNON GÉP KFT Production of agricoltural tools and equipments since Our company is distinguished for the use of high quality material.
Amministrazione di reti di calcolatori - Massimo Bertozzi Shell e scripting.
Do You Want To Pass Actual Exam in 1 st Attempt?.
La Mise en Place.
© 2007 SEI-Società Editrice Internazionale, Apogeo
FRATRUM MINORUM CAPUCCINORUM
Teacher’s notes This lesson probably takes a good 1hr30 plus hwk time. A preparatory homework could be to find out who Jovanotti is. Learning objectives:
Genitori Digitali ci siamo - Scuola Don Milani - 11 Gennaio 2016
WRITING – EXERCISE TYPES
Cosa succede quando premi invio
La rappresentazione delle informazioni
Terza Lezione → Navigare nel file System → parte 2
L’orario – the time Anno 8.
AusTel by taha.a.
Il condizionale.
PROGRAMMAZIONE BASH – ISTRUZIONE IF
Bubble Sort.
Clusters, bundles, lexical sets, priming Visual sets Translation
Tipi di Shell sh – Bourne shell csh – C shell ksh – Korn shell
Adolf Luther Born 1912 in Krefeld, Germany. Died 1990 Krefeld.
Studente : Andrea Cassarà Classe: 5AII A.S. 2014/2015 Link Sito
*******Più o meno + aggettivo + di *******
La Grammatica Italiana Avanti! p
© 2007 SEI-Società Editrice Internazionale, Apogeo
APPUNTI SUL LINGUAGGIO C Esercizi su File e Alberi Binari
Accesso al corpus it. / ing. parola cercata sintagmi preposizioni.
PowerShell di Windows PowerShell è un shell che mette a disposizione un prompt interattivo e un interprete a riga di comando , per le sue caratteristiche.
La programmazione strutturata
Transcript della presentazione:

1 © F. Pedullà, M. VerolaAA Espressioni Regolari LSO1 Modulo 2 - Sezione B Espressioni Regolari Laboratorio di Sistemi Operativi I Anno Accademico Francesco Pedullà (Tecnologie Informatiche) Massimo Verola (Informatica) Modulo 2 - Sezione B Espressioni Regolari Laboratorio di Sistemi Operativi I Anno Accademico Francesco Pedullà (Tecnologie Informatiche) Massimo Verola (Informatica) Copyright © Francesco Pedullà, Massimo Verola Copyright © Renzo Davoli, Alberto Montresor (Universitá di Bologna) Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license can be found at:

2 © F. Pedullà, M. VerolaAA Espressioni Regolari LSO1 Introduzione alle espressioni regolari Un'espressione regolare: è una stringa di caratteri e metacaratteri i metacaratteri sono caratteri speciali che vengono interpretati in modo "non letterale" dal meccanismo delle espressioni regolari Le espressioni regolari (Regular Expression, RE) sono utilizzate per ricerche e manipolazioni di stringhe Utilizzate da molti comandi quali grep, awk, sed, etc. Definizione: match Diciamo che una RE fa match con una particolare stringa se è possibile generare la stringa a partire dalla RE Nota: Unix/Linux wildcard e RE hanno metacaratteri (e significati) differenti; non vanno confuse

3 © F. Pedullà, M. VerolaAA Espressioni Regolari LSO1 Espressioni regolari (I) Sintassi: L’asterisco * fa match con qualsiasi numero di ripetizioni del carattere che lo precede, incluso 0 Esempio: “11*33” fa match con 1133, 11133, , etc Il punto. fa match con qualsiasi carattere, a parte newline Esempio: “13.3” fa match con 13a3, 1303, ma non con 13\n3 Il caret ^ fa match con l’inizio di una linea (ma ha anche significati addizionali) Esempio: “^Subject:.*” fa match con una linea di subject di posta elettronica Il dollaro $ fa match con la fine di una linea: Esempio: “ ^$ ” fa match con una linea vuota

4 © F. Pedullà, M. VerolaAA Espressioni Regolari LSO1 Espressioni regolari (II) Sintassi: Le parentesi quadre [...] sono utilizzate per fare match di un sottoinsieme (o di un intervallo) di caratteri “[xyz]” fa match con i caratteri x, y, z “[c-n]" fa match con qualsiasi carattere fra c ed n (nell'ordinamento ASCII) "[a-zA-Z0-9]“ fa match con qualsiasi caratter alfanumerico “[0-9]*” fa match con qualsiasi stringa decimale “[^0-9]” fa match con qualsiasi carattere non numerico “[Yy][Ee][Ss]" fa match con yes, Yes, YES, yEs, etc. Il backslash \ è usato come escape per i metacaratteri ed il carattere viene interpretato letteralmente: ad es., “\$” I metacaratteri perdono il loro significato speciale dentro [ ]

5 © F. Pedullà, M. VerolaAA Espressioni Regolari LSO1 Espressioni regolari (III) Le espressioni regolari hanno un concetto di "parola": una parola è un pattern contenente solo lettere, numeri e underscore _ E' possibile fare matching con l'inizio di una parola: \< Esempio: \<Fo fa match con tutte le parole che iniziano con Fo con la fine di una parola: \> Esempio: ox\> fa match con tutte le parole che finiscano con ox con parole complete: Esempio: \ Esempio: come cercare la parola The o the ? RE #1: [tT]he ---> errata: troverebbe anche other RE #2: □the□ ---> (□ è blank) errata: non troverebbe the all’inizio o fine di linea RE #3: \ ---> OK: utilizza la sintassi \

6 © F. Pedullà, M. VerolaAA Espressioni Regolari LSO1 Espressioni regolari (IV) RE Recall un modo per riferirsi ai match più recente Sintassi: per "marcare" una porzione di espressione regolare che volete riutilizzare: racchiuderla in \( \) per ripetere una porzione "marcata", si può utilizzare \n, con n=1..9 Esempi: '^\([a-z]\)\1' la sintassi \([a-z]\) indica un pattern [a-z] che, una volta fatto il match, puo’ essere indicato con la sintassi \1 quindi la RE fa match con tutte le linee che iniziano con due lettere minuscole identiche Ricerca di parole palindrome di 5 lettere (esempio: radar): '\([a-z]\)\([a-z]\)[a-z]\2\1'

7 © F. Pedullà, M. VerolaAA Espressioni Regolari LSO1 Comando grep Il comando grep permette di cercare pattern in un insieme di file se non vi sono file specificati, la ricerca è nello standard input il pattern è espresso come espressione regolare tutte le linee che contengono il pattern vengono stampate su stdout in caso di file multipli, le linee sono precedute dal pathname del file che le contiene (a meno di opzione –h) opzione –v fa in modo che l’output contenga tutte le linee che non contengono il pattern opzione –R analizza ricorsivamente le subdirectory opzione -c conta le occorrenze, invece di stamparle opzione -i ignora distinzioni tra caratteri maiuscoli e minuscoli opzione -q modo “silente” (quiet), non scrive nulla su stdout

8 © F. Pedullà, M. VerolaAA Espressioni Regolari LSO1 Comando grep Esistono quattro versioni: grep [options] pattern {file}* pattern è una espressione regolare fgrep [options] pattern [file(s)] pattern è una stringa fissa versione più veloce egrep [options] pattern [file(s)] pattern è una espressione regolare estesa zgrep [options] pattern [file(s)] è anche in grado di cercare in file compressi (compressed or gzipped)

9 © F. Pedullà, M. VerolaAA Espressioni Regolari LSO1 Comando grep - Esempi if echo "$VAR" | grep -q txt ; then echo "$VAR contains the substring \"txt\"" fi grep '[Ff]irst' *.txt file1.txt:This is the first line of file1.txt. file2.txt:This is the First line of file2.txt.

10 © F. Pedullà, M. VerolaAA Espressioni Regolari LSO1 Esempi: cosa fanno queste ricerche? grep -c 'ing$' /usr/dict/words grep -c '^un.*$' /usr/dict/words grep -ic '^[aeiou]' /usr/dict/words grep -ic '\(.\)\1\1' /usr/dict/words grep -c '^\(..\).*\1$' /usr/dict/words grep -ic '^\(.\)\(.\).\2\1$' /usr/dict/words

11 © F. Pedullà, M. VerolaAA Espressioni Regolari LSO1 Esercizi Per verificare le soluzioni degli esercizi, scrivere un file contenente parole (una per linea) che possono fare match oppure no con la RE ed analizzarlo con grep. Definire una o più RE che facciano match con: qualunque stringa che contenga "a" o "b" seguito da 2 caratteri qualunque seguiti da "a" o "b". Le stringhe "axxb", "alfa" e "blka" fanno match, "ab" no. una "A" seguita da qualunque carattere eccetto "x", "y" o "z". qualunque numero intero composto da 5 digit. qualunque parola (cioé una sequenza di caratteri alfanumerici senza spazi) che contenga una lettera doppia, per esempio “lettera” (doppia 't') o “doppia” (doppia 'p') – richiede 'recall', vedi lucido precedente

12 © F. Pedullà, M. VerolaAA Espressioni Regolari LSO1 Espressioni regolari estese Il segno ? fa match con 0 o 1 ripetizioni della espressione regolare precedente Esempio: “cort?o” fa match con coro e corto Il segno + fa match con 1 o più ripetizioni della espressione regolare precedente, ma non 0 Esempio: “ [0-9]+” fa match numeri non vuoti I segni \{ \} indicano il numero di ripetizioni della espressione regolare precedente Esempio: “[0-9] \{ 5\}” fa il match con tutti i numeri a 5 cifre I segni () servono a raggruppare espressioni regolari Esempio: “(re)*” fa match con “”, re, rere, rerere, etc. Il segno | indica un’alternativa (or) Esempio: “(bio|psico)logia” fa match con biologia e psicologia

13 © F. Pedullà, M. VerolaAA Espressioni Regolari LSO1 Esercizi Per verificare le soluzioni degli esercizi, scrivere un file contenente parole (una per linea) che possono fare match oppure no con la RE ed analizzarlo con grep. Definire una o più RE che facciano match con: qualunque numero intero composto da 12 digit. qualunque stringa che contiene solo 'a' e 'b'. qualunque stringa composta di 'a' e 'b' che comincia e finisce con 'a' qualunque stringa composta di 'a' e 'b' che contenga la stringa 'abba'

14 © F. Pedullà, M. VerolaAA Espressioni Regolari LSO1 Sommario RE (I) OperatorEffect.Matches any single character. ?The preceding item is optional and will be matched, at most, once. *The preceding item will be matched zero or more times. +The preceding item will be matched one or more times. \{N\}The preceding item is matched exactly N times. \{N,\}The preceding item is matched N or more times. \{N,M\}The preceding item is matched at least N times, but not more than M times. −Represents the range if it's not first or last in a list or the ending point of range in a list. ^Matches the empty string at the beginning of a line; also represents the characters not in the range of a list. $Matches the empty string at the end of a line. \bMatches the empty string at the edge of a word. \BMatches the empty string provided it's not at the edge of a word. \<Match the empty string at the beginning of word. \>Match the empty string at the end of word.

15 © F. Pedullà, M. VerolaAA Espressioni Regolari LSO1 Sommario RE (II) PatternMatches ^AAn A at the beginning of a line A$An A at the end of a line A^An A^ anywhere on a line $AA $A anywhere on a line ^\^A ^ at the beginning of a line ^^Same as ^\^ \$$A $ at the end of a line $$Same as \$$ ^.$A line with any single character Note that the caret ^ is only an anchor if it is the first character in a RE, while the $ is only an anchor if it is the last character in a RE.

16 © F. Pedullà, M. VerolaAA Espressioni Regolari LSO1 Sommario RE (III) PatternMatches [0-9]Any digit [^0-9]Any character other than a digit [-0-9]Any digit or a - [0-9-]Any digit or a - [^-0-9]Any character except a digit or a - [ ]0-9]Any digit or a ] [0-9] ]Any digit followed by a ] [0-9m-z]Any digit or any character between m and z [ ]0-9-]Any digit, a -, or a ] Note that right square bracket ] and dash – do not have special meaning if they directly follow a [.

17 © F. Pedullà, M. VerolaAA Espressioni Regolari LSO1 Sommario RE (IV) REMatches *Any line with a * \*Any line with a * \\Any line with a \ ^*Any line starting with a * ^A*Any line (useless RE !) ^A\*Any line starting with an A * ^AA*Any line starting with one A ^AA*BAny line starting with one or more A's followed by a B ^A\{4,8\}BAny line starting with four, five, six, seven, or eight A's followed by a B ^A\{4,\}BAny line starting with four or more A's followed by a B ^A\{4\}BAny line starting with an AAAAB \{4,8\}Any line with a {4,8} A{4,8}Any line with an A{4,8} Note that modifiers like * and \{1,5\} only act as modifiers if they follow a character set.

18 © F. Pedullà, M. VerolaAA Espressioni Regolari LSO1 Sommario RE (V) Hints for designing and analyzing a RE: 1. Knowing what it is you want to match and how it might appear in the text 2. Writing a pattern to describe what you want to match 3. Testing the pattern to see what it matches Hints for evaluating the results of a pattern-matching operation: 1. Hits: the lines I wanted to match 2. Misses: the lines I didn’t want to match 3. Misses that should be hits: the lines that I didn’t match but wanted to match 4. Hits that should be misses: the lines that I matched but I didn’t want to match