AWK Salvatore Campagna

Slides:



Advertisements
Presentazioni simili
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.
Advertisements

Sistemi Operativi - Vi 1 Il sistema operativo LINUX Leditor vi Giorgio Di Natale Stefano Di Carlo Politecnico di Torino Dip. Automatica e Informatica.
PHP.
IL LINGUAGGIO HTML Il linguaggio html. Il linguaggio html. Utilizzo dei tag. Utilizzo dei tag. Script Browser I link I link Caricamento dei dati sul server.
MATLAB.
MATLAB. Scopo della lezione Programmare in Matlab Funzioni Cicli Operatori relazionali Esercizi vari.
Dipartimento di Matematica
Algoritmi e Programmazione
Shell Scripting. Shell e comandi La shell e' un programma che interpreta i comandi dell'utente. I comandi possono essere dati da terminale, oppure contenuti.
JavaScript Laboratorio di Applicazioni Informatiche II mod. A.
Argomenti dalla linea dei comandi Gli argomenti possono essere passati a qualsiasi funzione di un programma, compresa la main(), direttamente dalla linea.
Applet Dott. Ing. Leonardo Rigutini Dipartimento Ingegneria dellInformazione Università di Siena Via Roma 56 – – SIENA Uff
XML Prof. Barbara Pernici Politecnico di Milano. Introduzione a XML.
Linguaggio MATLAB: costrutti tipici (IF,WHILE…)
Università degli Studi di Bergamo Facoltà di Lingue e Letterature Straniere Facoltà di Lettere e Filosofia A.A Informatica generale 1 Appunti.
Informatica 2. Concetti fondamentali di programmazione Programmare vuol dire scrivere un algoritmo in un linguaggio che faccia funzionare un calcolatore.
MATLAB. …oggi… Programmare in Matlab Programmare in Matlab m-file m-file script script Funzioni Funzioni Cicli Cicli Operatori relazionali Operatori relazionali.
MATLAB.
MATLAB. …oggi… Programmare in Matlab Programmare in Matlab Funzioni Funzioni Cicli Cicli Operatori relazionali Operatori relazionali Indipendenza lineare,
MATLAB. …oggi… Programmare in Matlab Programmare in Matlab Funzioni Funzioni Cicli Cicli Operatori relazionali Operatori relazionali Esercizi vari Esercizi.
Cosè un programma? LALA PROGRAMMAZIONE PROGRAMMAZIONELALA PROGRAMMAZIONE PROGRAMMAZIONE UN ELENCO DI ISTRUZIONI, APPARTENENTI A UN BEN DEFINITO LINGUAGGIO,
Importazione di dati Nellambito dellutilizzo di qualsiasi software statistico una necessità è quella di importare dati esterni forniti dallutilizzatore.
CORSO DI INFORMATICA LAUREA TRIENNALE-COMUNICAZIONE & DAMS
Corso di Informatica A.A
PHP – Un’introduzione Linguaggi e Traduttori 2003 Facoltà di Economia
Sistemi Operativi - Introduzione 1 Il sistema operativo UNIX Dettagli e comandi avanzati Niccolò Battezzati Politecnico di Torino Dip. Automatica e Informatica.
Sistemi Operativi - Introduzione 1 Il sistema operativo UNIX Dettagli e comandi avanzati Niccolò Battezzati Politecnico di Torino Dip. Automatica e Informatica.
Sistemi Operativi - Introduzione 1 Il sistema operativo UNIX AWK Niccolò Battezzati Politecnico di Torino Dip. Automatica e Informatica.
Sistemi Operativi - Introduzione 1 Il sistema operativo UNIX La shell Niccolò Battezzati Politecnico di Torino Dip. Automatica e Informatica.
Sistemi Operativi - Introduzione 1 Il sistema operativo UNIX Shell: uso avanzato e script Niccolò Battezzati Politecnico di Torino Dip. Automatica e Informatica.
Sistemi Operativi - Shell 1 Elementi di programmazione concorrente Niccolo` Battezzati Politecnico di Torino Dip. Automatica e Informatica.
Sistemi Operativi - Introduzione 1 Il sistema operativo UNIX Dettagli e comandi avanzati Niccolò Battezzati Politecnico di Torino Dip. Automatica e Informatica.
Sistemi Operativi - Introduzione 1 Il sistema operativo UNIX La shell Niccolò Battezzati Politecnico di Torino Dip. Automatica e Informatica.
Programmazione modulare nel linguaggio C
Sistemi Operativi - Introduzione 1 Il sistema operativo UNIX Shell: uso avanzato e script Niccolò Battezzati Politecnico di Torino Dip. Automatica e Informatica.
Sistemi Operativi - Introduzione 1 Il sistema operativo UNIX Vi(m): un editor di testo Niccolò Battezzati Politecnico di Torino Dip. Automatica e Informatica.
Lezione 24 maggio 2007 Strutture File Allocazione dinamica della memoria.
Corso di PHP.
INTRODUZIONE A MATLAB.
Sistemi Operativi – La shell Salvatore Campagna Politecnico di Torino Dipartimento di Automatica.
Modulo 7 – reti informatiche u.d. 3 (syllabus – )
Lezione 17 Riccardo Sama' Copyright Riccardo Sama' Access.
Altri comandi avanzati Salvatore Campagna Politecnico di Torino Dipartimento di Automatica.
G. Amodeo, C. Gaibisso Programmazione di Calcolatori Lezione X Ingresso/Uscita di Interi Programmazione di Calcolatori: Ingresso/Uscita 1.
Corso di Informatica A.A Corso di Informatica Laurea Triennale - Comunicazione&Dams Dott.ssa Maria Vittoria Avolio Laurea.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Script 1 Marco D. Santambrogio – Ver. aggiornata al 2 Dicembre 2013.
Esercizi su File.
BIOINFO3 - Lezione 201 Come in ogni corso di introduzione ad un linguaggio di programmazione, proviamo a scrivere lormai celebre primo programma di prova.
BIOINFO3 - Lezione 51 INSERIMENTO DEI DATI Visto come si creano le tabelle (sinora tristemente vuote), cominciamo ad occuparci di come riempirle con dei.
BIOINFO3 - Lezione 331 SUBROUTINE IN PERL Una subroutine (funzione, metodo, procedura o sottoprogramma), e` una prozione di codice all`interno di un programma.
1 Applet ed HTML Fondamenti di Informatica Corso D.
Prompt dei comandi – Windows XP In Windows XP si avvia con Start AccessoriSistema Prompt dei comandi … oppure con Start Esegui cmd.exe.
Corso di Informatica Corso di Laurea in Conservazione e Restauro dei Beni Culturali Gianluca Torta Dipartimento di Informatica Tel: Mail:
ASP – Active Server Pages Introduzione Pagine Web Statiche & Dinamiche(ASP)
Lezione 1: Introduzione all’uso di Matlab
Introduzione a Windows Lezione 2 Riccardo Sama' Copyright  Riccardo Sama'
PHP - PHP: Hypertext Preprocessor. Introduzione PHP (acronimo ricorsivo per "PHP: Hypertext Preprocessor") è un linguaggio di scripting general-purpose.
JavaScript Generalità Cos'è JavaScript?
Lezione 3 Struttura lessicale del linguaggio
Introduzione a Javascript
Elaborazione delle tracce con AWK. Introduzione ad AWK AWK è un linguaggio per la manipolazione di file di testo organizzati in righe e colonne Pertanto.
Tecnologie Informatiche ed Elettroniche per le Produzioni Animali
Fondamenti di Markup Languages: Richiami di HTML © 2005 Stefano Clemente Stefano Clemente
Corso di Laboratorio primo modulo Introduzione all'uso di un sistema operativo. Introduzione all'uso della shell (bash). Java – –Introduzione – –Tipi di.
Linguaggio C: Le basi Stefano Cagnoni e Monica Mordonini
Esercitazione no. 4 EXCEL II Laboratorio di Informatica AA 2009/2010.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Array e “stringhe” Marco D. Santambrogio – Ver. aggiornata al 28 Ottobre 2014.
Eprogram informatica V anno. Introduzione a PHP Introduzione La diffusione di PHP ha avuto un notevole incremento dalla fine degli anni Novanta a oggi,
Il C `e un linguaggio di programmazione di uso generale, originariamente sviluppato per la scrittura del sistema operativo Unix, ed oggi disponibile su.
Amministrazione di reti di calcolatori - Massimo Bertozzi Shell e scripting.
Transcript della presentazione:

AWK Salvatore Campagna Email: salvatore.campagna@polito.it Politecnico di Torino Dipartimento di Automatica e Informatica

Introduzione Linguaggio di scripting parser scritto nel 1977 da: A. V. Aho P. J. Weinberger B. W. Kernighan Sintassi simile al C Attenzione i vettori con indici numerici hanno indice che comincia da 1 ..

Documentazione Fare riferimento a MAN AWK (come sempre) Risorsa web: http://people.cs.uu.nl/piet/docs/nawk/nawk_toc.html

Funzionamento E’ un filtro Si specifica un pattern per una riga e si esegue una azione se la riga rispetta il pattern Ogni file in input è diviso in record (line) Ogni record è diviso in campi (parole)

Riga di comando Si specificando pattern e azioni direttamente sulla shell awk [opzioni] ‘patter/azioni’ <file> Si può passare in input anche un file che contiene pattern e azioni Awk [opzioni] –f <script> <file> Opzioni utili -v var=hello: definisce una variabile con il suo valore e lo passa all’engine AWK

Comandi AWK Sono coppie patter/azione pattern { azione; } Se manca l’azione di default awk visualizza in output la riga Se manca il pattern l’azione viese eseguita su ogni riga

Pattern Un pattern può essere: Esempi: Una espressione regolare: /regexp/ Una espressione di confronto; Esempi: /^#/ $1 == ‘’prova’’ || $1 == ‘’PROVA’’ $1 ~ /^#/

Operatori di confronto ==, != >, <, >=, <= ~: match con espressione ! ~: no match con espressione Operatori logici && (and), || (or), ! (not)

Pattern predefiniti Esiston due pattern predefiniti: Esempi: START: l’azione associata viene eseguita prima di cominciare a processare la prima riga del file di input END: l’azione associata viene eseguita dopo aver processato tutte le righe del file di input Esempi: BEGIN { FS=‘’:’’ } END { printf (‘’Risultato: %d\n’’, result); }

Variabili Non hanno tipo (il loro tipo dipende dal contesto) Si usano come in C e non serve il simbolo $ Il $ serve a fare riferimento al campo i- esimo del record che è in fase di processamento I vettori sono associativi: indici sia numerici che letterali

Variabili predefinite $0: tutto il record (linea) corrente $1, $2, ... $i ...: campo i-esimo del record corrente NF: numero di campi del record corrente $NF: il valore dell’ultimo campo FS: separatore di campi (default spazio) RS: separatore di record (line) (default ‘a capo’)

Array Sono delle mappe o hash table Sono array associativi: indici sia numerici che letterali Multidimensionali: chiave di accesso combinazione degli indici Esempi: giorni[gennaio]=31 $1 ~ /^[0-9]/ { quant[$2,data]+=$1; } val[$1]=$2

Operare su array Costrutto if: Costrutto for: Costrutto delete: if ( val in array ) { ... } Costrutto for: for ( val in array ) { ... } Costrutto delete: delete array delete array[index] Se si accede a un elemento inesistente viene restituito 0 o la stringa vuota a seconda del contesto

Operare con le stringhe (string1 string2 string3 ...): concatenazione gsub(r, s[, t]); sostituisce le occorrenze di r con s in t (se t non c’è allora opera su $0) usare l’& per ottenere il valore del match Restituisce il numero di sostituzioni effettuate length(s) Restituisce la lunghezza della stringa match (s, r): restituisce la prima occorrenza di r in s

Operare con le stringhe split (s, a [, d]) Suddivide s in parole rispetto al delimitatore d e mette il risultato nel vettore a Restituisce il numero di elementi in a Substr(s, i [, n]): Ritorna n caratteri di s a partire dall’i-esimo. Se n non c’è dall’i-esimo alla fine toupper(s), tolower(s) Ritornano la stringa s in maiuscolo o minuscolo

Gestione dell’IO getline [var] [<file] print str [> file ] Legge il record seguente da file (o da file corrente) in var (o $0) print str [> file ] printf (format, ...) [> file ] Stampa su stdout o file. print non vuole le () e aggiunge newline system(command): chiama la shell per eseguire command exit: termina eseguendo il pattern END (se c’è)

Getline L’utilizzo tipico di getline è quello di leggere un secondo file (in più rispetto a quello che si sta leggendo) BEGIN { while getline < vocabolario.txt diz[$1]=$2 } { for(i=0; i<NF; i++){ if($i in diz) {printf(“%s”, diz[$i]);} else {printf(“%s”, $i);}

Funzioni definite dall’utente Si possono definire funzioni Sintassi: function my_func (param1, param3, ,,,) { /*azioni*/ return val; } Uso della funzione: pattern { return_value=my_func(param1, param2, ...);