Sistemi Operativi - Introduzione 1 Il sistema operativo UNIX AWK Niccolò Battezzati Politecnico di Torino Dip. Automatica e Informatica.

Slides:



Advertisements
Presentazioni simili
INFORMATICA Altre Istruzioni di I/O
Advertisements

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.
Stringhe Operare con le stringhe con laiuto degli array.
Sistemi Operativi - Vi 1 Il sistema operativo LINUX Leditor vi Giorgio Di Natale Stefano Di Carlo Politecnico di Torino Dip. Automatica e Informatica.
Nel C non esiste un dato primario di tipo stringa; queste sono rappresentate con un array monodimensionale di caratteri (tipo char). Così per definire.
PHP.
MATLAB.
MATLAB. Scopo della lezione Programmare in Matlab Funzioni Cicli Operatori relazionali Esercizi vari.
Dipartimento di Matematica
Algoritmi e Programmazione
LIP: 1 Marzo 2005 Classe Object e Vettori. Partiamo da Lesercizio dellultima esercitazione realizzato tramite array Vedremo come si puo fare in modo piu.
Laboratorio Matematica e Informatica
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.
Anno accademico Il preprocessore del linguaggio C.
Fondamenti di Informatica I a.a Il linguaggio C Il preprocessore La sostituzione di macro Le compilazioni condizionali Linclusione di file C.
Caratteri e stringhe di caratteri
XML Prof. Barbara Pernici Politecnico di Milano. Introduzione a XML.
Prof.ssa Chiara Petrioli -- Fondamenti di programmazione, a.a. 2009/2010 Corso di Fondamenti di programmazione a.a. 2009/2010 Prof.ssa Chiara Petrioli.
Algoritmi Politecnico di Milano C Primi programmi Politecnico di Milano.
File.
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Introduzione a JAVA Anno Accademico 2009/2010.
1 Corso di Informatica (Programmazione) Lezione 13 (21 novembre 2008) Programmazione in Java: stringhe e array.
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Le stringhe di caratteri in Java Anno Accademico 2009/2010.
MATLAB. …oggi… Programmare in Matlab Programmare in Matlab m-file m-file script script Funzioni Funzioni Cicli Cicli Operatori relazionali Operatori relazionali.
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.
Creazione di matrici Delimititatore di riga Delimititatore di matrice
Laboratorio 1: Usare Linux. File system Il file system è la componente del sistema operativo che si occupa della gestione di file e cartelle Con laccount.
Lezione 4: Costrutti Condizionali Prof. Raffaele Montella.
Procedure e funzioni nei linguaggi di alto livello Lab Programmazione - turno /2006.
Istruzioni di selezione in Java Programmazione Corso di laurea in Informatica.
Organizzazione del corso
Shell: variabili di sistema PATH HOME USER PWD SHELL HOSTNAME … Per visualizzare il valore di tutte le variabili dambiente si usa il comando set.
OPERAZIONI CON STRINGHE Le operazioni più interessanti da fare, per ora, con le stringhe sono: determinare la lunghezza della stringa, cioè quanti caratteri.
I File.
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 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.
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.
Operatori booleani - 1 Sono fondamentali per il recupero delle informazioni in un archivio elettronico perché permettono di combinare più termini tra.
Corso di PHP.
Programmazione in Java Claudia Raibulet
Sistemi Operativi – La shell Salvatore Campagna Politecnico di Torino Dipartimento di Automatica.
File ad accesso casuale o random
Altri comandi avanzati Salvatore Campagna Politecnico di Torino Dipartimento di Automatica.
AWK Salvatore Campagna
Prof.ssa Chiara Petrioli -- Fondamenti di programmazione, a.a. 2009/2010 Corso di Fondamenti di programmazione a.a. 2009/2010 Prof.ssa Chiara Petrioli.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Script 1 Marco D. Santambrogio – Ver. aggiornata al 2 Dicembre 2013.
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 291 PATTERN MATCHING Imparato cosa sono e come si usano le espressioni regolari per individuare dei pattern, vediamo come si usano in.
BIOINFO3 - Lezione 251 ARRAY ASSOCIATIVI E possibile assegnare tutti gli elementi dellarray con ununica istruzione %anni=(Marco,30,Luigi,33,Anna,28,Chiara,25);
Fopndamenti di programmazione. 2 La classe String Una stringa è una sequenza di caratteri La classe String è utilizzata per memorizzare caratteri La classe.
Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni – BCOR Ingegneria Elettronica – BELR Introduzione al C Esercitazione 5 D. Bloisi, A.
Lezione 3 Struttura lessicale del linguaggio
Prof.ssa Chiara Petrioli -- corso di programmazione 1, a.a. 2006/2007 Corso di Programmazione 1 a.a.2006/2007 Prof.ssa Chiara Petrioli Corso di Laurea.
Script di shell (bash).
Introduzione a Javascript
Vettori (a una dimensione)
Elaborazione delle tracce con AWK. Introduzione ad AWK AWK è un linguaggio per la manipolazione di file di testo organizzati in righe e colonne Pertanto.
1 PROGRAMMAZIONE IN SHELL The Unix Programming Environment Kernigham - Pike.
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.
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.
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica
Eprogram informatica V anno. Introduzione a PHP Introduzione La diffusione di PHP ha avuto un notevole incremento dalla fine degli anni Novanta a oggi,
Amministrazione di reti di calcolatori - Massimo Bertozzi Shell e scripting.
Transcript della presentazione:

Sistemi Operativi - Introduzione 1 Il sistema operativo UNIX AWK Niccolò Battezzati Politecnico di Torino Dip. Automatica e Informatica

Sistemi Operativi - Introduzione 2 Introduzione

Sistemi Operativi - Introduzione 3 Introduzione Dove si trova la documentazione: man awk

Sistemi Operativi - Introduzione 4 Funzionamento Si definiscono dei pattern e le rispettive azioni per ogni linea del file di input che fa match con un determinato pattern, viene eseguita la rispettiva azione il file di input e` diviso in record (linee) e ogni record e` diviso in campi (parole).

Sistemi Operativi - Introduzione 5 Funzionamento Si puo` usare AWK sia dando i comandi direttamente da shell: awk [options] commands input_f sia usando un file di script: awk [options] –f script_f input_f opzioni utili: -v var=val definisce una variabile var e le assegna il valore val

Sistemi Operativi - Introduzione 6 Comandi I comandi in AWK sono delle coppie pattern-azione: pattern { azione; } se un pattern non ha azione, AWK stampa ogni linea che fa match se unazione non ha pattern, viene eseguita per ciascuna linea del file.

Sistemi Operativi - Introduzione 7 Pattern I pattern possono essere: /regexp/ espressioni regolari relational_expr confronti Esempi: /^[Pp]ippo\>/ $1 == Pippo || $1 == pippo $1 ~ /[Pp]pippo\>/

Sistemi Operativi - Introduzione 8 Operatori di confronto Operatori di confronto: ==, !=, = ~ fa match con la regexp !~ NON fa match con la regexp &&, ||, ! operatori logici

Sistemi Operativi - Introduzione 9 Pattern Esistono due pattern predefiniti: BEGIN eseguito prima di scorrere il file END eseguito alla fine del file Esempi: BEGIN { FS=:;} END {printf(risultato = %d\n,res);}

Sistemi Operativi - Introduzione 10 Variabili Le variabili non hanno tipo, possono essere considerate stringhe o numeri floating-point a seconda del contesto si usano come in C, non serve il $ per farsi restituire il valore della variabile loperatore $ serve per farsi restituire il valore di un campo del record corrente o del record stesso i vettori sono associativi, sono delle hash-table.

Sistemi Operativi - Introduzione 11 Variabili predefinite Variabili predefinite: $0 il record corrente $1,$2,... i campi del record corrente NF numero di campi del record corrente $NF lultimo campo del record corrente FS il carattere separatore dei campi RS il carattere separatore dei record

Sistemi Operativi - Introduzione 12 Array Gli array sono delle mappe che usano lindice come chiave. Lindice puo` essere di qualsiasi tipo (numero o stringa) gli array possono essere multidimensionali, la chiave e` una combinazione degli indici Esempi: giorni[gennaio] = 31; $1 ~ /^[0-9]/ { quant[$2,data]+=$1;}

Sistemi Operativi - Introduzione 13 Array Ci sono alcuni costrutti e operatori utili per gli array: if(val in array) {...} if((val,val2) in array) {...} for(var in array) {...} delete array; delete array[index]; se si accede a un array con un indice inesistente viene ritornato 0 o la stringa vuota a seconda del contesto.

Sistemi Operativi - Introduzione 14 Stringhe Ci sono alcuni costrutti e funzioni utili per le stringhe: (string1 string2 string3...) Concatenazione di stringhe gsub(r, s [, t]); Sostituisce ogni occorrenza della regexp r con s nella stringa t (o $0 se non ce` t). Un & in s viene sostituito con il valore che fa match. Ritorna il numero di sostituzioni. length(s); Ritorna la lunghezza della stringa s. match(s, r); Ritorna la prima occorrenza di una stringa che fa match con la regexp r nella stringa s.

Sistemi Operativi - Introduzione 15 Stringhe split(s, a [, d]); Suddivide la stringa s in parole secondo il delimitatore d e mette nel vettore ogni elemento. Ritorna il numero di elementi del vettore a. substr(s, i [, n]); Ritorna al massimo n caratteri della stringa s a partire dal carattere i-esimo. Se n non ce` ritorna tutto il resto della stringa a partire da i. toupper(s); tolower(s); Ritornano la stringa s trasformata in maiuscolo (o minuscolo).

Sistemi Operativi - Introduzione 16 Gestione dellI/O Funzioni utili per una gestione avanzata dellI/O: getline [var] [<file]; Carica il record seguente di file (o del file corrente) in var (o in $0). print [str] [>file]; printf(format,...) [>file]; Stampa (formattata) su file (se ce` la redirezione). print stampa un newline alla fine e non vuole le parentesi. system(command); Chiama una shell per eseguire il comando command. exit; Va alla fine del file ed esegue il pattern END se ce`.

Sistemi Operativi - Introduzione 17 getline Lutilizzo tipico di getline e` quello di leggere un secondo file di input prima della elaborazione: BEGIN { while(getline <vocabolario){ voc[$1]=$2; } { for(i=0; i<NF; i++){ if($i in voc) {printf(%s, voc[$i]);} else {printf(%s, $i);} }

Sistemi Operativi - Introduzione 18 Funzioni In AWK si possono definire delle funzioni con la seguente sintassi: function my_function(param1, param2...) { /*actions*/ return val; }... pattern { ret_val = my_function(param1, param2...); }