Il sistema operativo LINUX Tools e comandi avanzati

Documenti analoghi
L utility Unix awk [Aho-Weinberger-Kernighan]

Il sistema operativo LINUX Esercitazione 3. Esercizio 1. Esercizio 2. Esercizio 5 - Soluzione. Il sistema operativo LINUX Esercitazione 4.

L ambiente UNIX/Linux. I filtri Stefano Quer Dipartimento di Automatica e Informatica Politecnico di Torino

Ulteriori comandi sui file

Gestione avanzata dei file

L utility Unix awk [Aho-Weinberger-Kernighan]

Shell: variabili di sistema. Per visualizzare il valore di tutte le variabili d ambiente si usa il comando set

Controllo di flusso negli script: if-then-else

Corso di Laboratorio di Sistemi Operativi

Shell BASH. Variabili Redirezione

Elaborazione di File di Dati. Uso di semplici comandi Espressioni regolari AWK

Manipolazione di testo

- comando sort: con chiavi di ordinamento -

Il sistema operativo LINUX Script di Shell

La Shell: esecuzione dei comandi

Lab. di Sistemi Operativi - Esercitazione n 2 - a.a. 2012/2013

sed: editor non interattivo di file di testo (1974 nei Bell Labs come evoluzione di grep, Lee E. McMahon)

Lezione 2: Comandi avanzati della Shell di Unix

Lezione 5: Controllo del flusso e costrutti avanzati

Il filesystem di Unix/Linux (I)

Laboratorio Progettazione Web Il linguaggio PHP Le Istruzioni. Andrea Marchetti IIT-CNR AA 2015/2016

Il DOS diagramma di flusso. I comandi del DOS. I comandi: vista funzionale. Parametri. Opzioni. I comandi: sintassi

Lab. di Sistemi Operativi - Lezione in aula - a.a. 2012/2013

MATLAB I/O. Informatica B - A.A. 2012/2013 ACQUISIZIONE DI INPUT DA TASTIERA

L ambiente UNIX/Linux. Espressioni regolari e comando find Stefano Quer Dipartimento di Automatica e Informatica Politecnico di Torino

Sistemi Operativi 1. Mattia Monga. a.a. 2012/13. Dip. di Informatica Università degli Studi di Milano, Italia

Archiviazione, ricerca dei file e pianificazione dei processi

Le funzioni di shell La bash supporta la programmazione procedurale e prevede la possibilità di definire funzioni utilizzando le sintassi

GESTIONE DEI FILE IN C. Docente: Giorgio Giacinto AA 2008/2009

Programmazione web lato client con JavaScript. Marco Camurri 1

Espressioni regolari in Javascript (RegExp)

Stream EDitor (sed) sed NON modifica l'input 2. L'output viene inviato allo standard output e puo' essere rediretto

Laboratorio Progettazione Web Il linguaggio PHP Lezione 6. Andrea Marchetti IIT-CNR 2011/2012

Esempio 1. Creare uno script (file comandi) che abbia la sintassi:

Laboratorio Progettazione Web Il linguaggio PHP Le Istruzioni. Andrea Marchetti IIT-CNR AA 2014/2015

Linux e la shell Bash

Espressioni Regolari. Giancarlo Massidda

Keep it simple, stupid!

CORSO LINUX PER LA CERTIFICAZIONE LPI ESSENTIALS

Shell. Una shell di comandi ci consente, dunque, di eseguire tutte le operazioni di cui abbiamo bisogno!

MasterIT - Scripting Es1. Sh, Csh, Grep, Sed, Awk

Linguistica Computazionale: esercitazioni

Manipolazioni elementari di flussi di testo strutturati

Laboratorio di Matlab

ESECUZIONE DI PROGRAMMI C SU MACCHINE REALI. Docente: Giorgio Giacinto AA 2008/2009. formalizzazione degli algoritmi in linguaggio C

Gestione dei file. Stefano Ferrari. Università degli Studi di Milano Programmazione. anno accademico

Metodi di Analisi dei Dati Sperimentali. AA 2009/2010 Pier Luca Maffettone. Elementi di Matlab

- W. Kernighan) AWK (Aho. Introduzione. Programmi awk. Un linguaggio di programmazione per manipolare file di dati

Lezione 8. Esercitazione su AWK. Sistemi Operativi

Matlab 5. Funzioni. Slide basate sul corso di C. Blundo. A.A. 2010/ GPersiano. Laboratorio di Informatica per Fisici 1

Operazioni su file di caratteri

Corso di Fondamenti di Informatica

Sistemi Operativi. Esercitazione 5. Corso di Laurea Triennale in Ingegneria Informatica.

Il sistema operativo UNIX/Linux. Soluzione di problemi mediante script Stefano Quer Dipartimento di Automatica e Informatica Politecnico di Torino

STRUTTURE DI CONTROLLO DEL C++

Rappresentazione degli algoritmi

Input/Output di numeri

GLUG Govonis. Corso Avanzato GNU / Linux. Lezione del Shell

DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOIGNEGNERIA. INFORMATICA B Ingegneria Elettrica. Script in Matlab

Corso di Matematica per la Chimica. Dott.ssa Maria Carmela De Bonis a.a

Laboratorio Progettazione Web Il linguaggio PHP Variabili e Istruzioni. Andrea Marchetti CNR/IIT AA 2016/2017

File binari e file di testo

PROGRAMMAZIONE STRUTTURATA

Fogli Elettronici. Idoneità Informatica Prof. Mauro Gaspari

Script in Matlab. INFORMATICA B + C (sezione L-Z) Ingegneria Elettrica, Chimica e dei Materiali

BREVISSIMA GUIDA AL SISTEMA UNIX / LINUX

Il linguaggio PHP. Elementi base

Lab. di Sistemi Operativi - Esercitazione - Comandi Shell

Guida introduttiva al PHP

Shell scripting. Turing completi approccio procedurale non tipati (l'unico tipo disponibile è la stringa) interpretati

Analizzatori Lessicali con JLex. Giuseppe Morelli

Sistemi Operativi 8 Laboratorio linea 2

sintassi: percorsi, espressioni (condizioni e operatori) esecuzione di un comando sul risultato della ricerca (azione -exec)

Laboratorio di informatica Ingegneria Clinica. Esercitazione 2 10 Ottobre 2011

Fondamenti di Informatica 6. Algoritmi e pseudocodifica

Il sistema operativo LINUX La shell

Cognome e Nome : Corso e Anno di Immatricolazione: Modalità di Laboratorio (Progetto/Prova) :

Funzionalità. Il preprocessore C. Inclusione di file. Inclusione di file

Introduzione a UNIX shell e file comandi

5 - Istruzioni condizionali

JavaScript Core Language. Prof. Francesco Accarino IIS Atiero Spinelli Sesto San Giovanni via leopardi 132

Programmazione a blocchi. Algobuild Prof. Sergio Roselli

Introduzione ad AWK. Davide Di Vaia, Pietro Laface

L ambiente UNIX/Linux Espressioni regolari e comando find

VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole.

Le basi del linguaggio Java

Corso di Linguaggi di Programmazione

ORGANIZZAZIONE del FILE SYSTEM SISTEMA OPERATIVO UNIX FILE SYSTEM. FILE astrazione unificante del sistema operativo

Formattazione avanzata. I/O Avanzato e File. Formattazione dell output. Formattazione avanzata. Forma completa degli specificatori

Algoritmi, Strutture Dati e Programmi. UD 2.b: Programmazione in Pascal

ESECUZIONE DI PROGRAMMI C SU MACCHINE REALI. Docente: Giorgio Giacinto AA 2009/2010

Informatica Applicata al Suono Tutorial Matlab

RELAZIONE DELLA PROVA DI LABORATORIO DI INFORMATICA

Elementi lessicali. Lezione 4. La parole chiave. Elementi lessicali. Elementi lessicali e espressioni logiche. Linguaggi di Programmazione I

Senza Soluzioni. Può un altro utente non appartenente al gruppo di mgiorgio, eseguire gli stessi comandi?

Lezione 25: File Mercoledì 18 Novembre 2009

Lesson #6. Miscellaneous. Roberto De Virgilio

Text files, streams. I file che ci interessano sono file di testo. anche se, logicamente, contengono numeri o altro

Introduzione al MATLAB c Parte 3 Script e function

Introduzione a Matlab

Transcript:

Il sistema operativo LINUX Tools e comandi avanzati Giorgio Di Natale <dinatale@polito.it> Stefano Di Carlo <dicarlo@polito.it> Politecnico di Torino Dip. Automatica e Informatica Sistemi Operativi - Tools 1 Indice Alcuni comandi avanzati find grep tar, gzip, gunzip I filtri sort sed awk Sistemi Operativi - Tools 2

Indice Alcuni comandi avanzati find grep tar, gzip, gunzip I filtri sort sed awk Sistemi Operativi - Tools 3 Elementi di ricerca find <dir> [-opt] Alcune opzioni: -name pattern Attenzione: racchiudere il pattern tra apici (accenti acuti) se si usano espressioni regolari -type [b c d l] Sistemi Operativi - Tools 4

Elementi di ricerca find <dir> [-opt] Alcune opzioni: -name pattern Attenzione: racchiudere il pattern tra apici se si usano espressioni regolari -type [b c d l] File a blocchi Sistemi Operativi - Tools 5 Elementi di ricerca find <dir> [-opt] Alcune opzioni: -name pattern Attenzione: racchiudere il pattern tra apici se si usano espressioni regolari -type [b c d l] File a caratteri Sistemi Operativi - Tools 6

Elementi di ricerca find <dir> [-opt] Alcune opzioni: -name pattern Attenzione: racchiudere il pattern tra apici se si usano espressioni regolari -type [b c d l] Directory Sistemi Operativi - Tools 7 Elementi di ricerca find <dir> [-opt] Alcune opzioni: -name pattern Attenzione: racchiudere il pattern tra apici se si usano espressioni regolari -type [b c d l] Link Sistemi Operativi - Tools 8

Uso avanzato di find Si può far eseguire un comando su tutti i file trovati specificando come ultimo elemento dell'espressione: -exec comando \; In comando, usare \{} per indicare il file corrente esempio: find. -name core -exec rm \{} \; Sistemi Operativi - Tools 9 Uso avanzato di find L'espressione di ricerca può contenere più condizioni usate per formare una condizione logica complessa Operazioni logiche: AND: si elencano le condizioni una di seguito all'altra OR: usare -o NOT: usare! Sistemi Operativi - Tools 10

Uso avanzato di find Usare le parentesi tonde per formare espressioni complesse Esempio: find. \( -name core -o -size 10b \) find. \( -name test -o! \( -size 10c \) \) Il \ serve a proteggere la ( dall espansione da parte della shell; 10c significa 10 byte, mentre 10b significa 10 blocchi Sistemi Operativi - Tools 11 Indice Alcuni comandi avanzati find grep tar, gzip, gunzip I filtri sort sed awk Sistemi Operativi - Tools 12

grep Per cercare se una stringa compare all'interno di un insieme di file, si può usare il comando: grep [-opzioni] pattern files Sistemi Operativi - Tools 13 grep Opzioni: -c conta le righe che contengono il pattern -i ignora la differenza maiuscolo/minuscolo -l elenca solo i nomi dei file contenenti il pattern (di default viene anche mandata in output la relativa riga) -n indica il numero d'ordine delle righe -v considera solo le righe che non contengono il pattern Sistemi Operativi - Tools 14

Espressioni regolari in grep I pattern di ricerca in grep possono essere normali stringhe o espressioni regolari Alcuni caratteri hanno un significato speciale (a meno che siano preceduti da \). un carattere qualunque ^ inizio riga $ fine riga Sistemi Operativi - Tools 15 Espressioni regolari in grep (cont) * ripetizione (zero o più volte) + ripetizione (una o più volte) [ ] un carattere tra quelli in parentesi [^ ] un carattere esclusi quelli in parentesi \< inizio parola \> fine parola Sistemi Operativi - Tools 16

Ricerca ricorsiva tra le directory Se si vogliono effettuare delle ricerche all interno di un albero di directory si deve usare il comando: find. -name * -exec grep pattern \{} \; NOTA: si tratta sempre di apici intesi come accenti acuti; l accento grave provoca l esecuzione di quanto specificato da parte della shell Sistemi Operativi - Tools 17 Indice Alcuni comandi avanzati find grep tar, gzip, gunzip I filtri sort sed awk Sistemi Operativi - Tools 18

tar tar [option] files Accoda una lista di file in un unico tarfile ed effettua l operazione inversa Sistemi Operativi - Tools 19 tar - Creazione Opzioni per creare un tarfile: -c crea un nuovo tarfile -f file specifica il nome del tarfile -v Verbose Esempi: tar -cvf /tmp/maino.tar /home/maino Sistemi Operativi - Tools 20

tar - Estrazione Opzioni per estrarre da un tarfile: -x Estrae i file dal tarfile -t Testa il contenuto del tarfile -f file Specifica il nome del file -v Verbose Esempi: tar -tvf /tmp/maino.tar tar -xvf /tmp/maino.tar Sistemi Operativi - Tools 21 gzip gzip [opt] file Comprime un file Opzioni: -1 fastest -9 max compression Sistemi Operativi - Tools 22

gunzip gunzip file Decomprime un file Sistemi Operativi - Tools 23 Indice Alcuni comandi avanzati find grep tar, gzip, gunzip I filtri sort sed awk Sistemi Operativi - Tools 24

I filtri Un filtro è un programma che riceve i dati di ingresso da stdin e genera i suoi risultati su stdout I filtri sono molto utili in connessione con la ridirezione dell'i/o e con le pipe Esempi noti: more, less head, tail Sistemi Operativi - Tools 25 Indice Alcuni comandi avanzati find grep tar, gzip I filtri sort sed awk Sistemi Operativi - Tools 26

Ordinamento di dati sort [-opzioni] [file...] Opzioni: -b ignora gli spazi iniziali -d (modo alfabetico) confronta solo lettere, cifre e spazi -f ignora la differenza maiuscolo/minuscolo Sistemi Operativi - Tools 27 Ordinamento di dati sort [-opzioni] [file...] -o file scrive i dati ordinati in file (di default scrive su stout) -r ordinamento inverso -tcar separatore dei campi Es. sort k2.2,2.3 nomefile ordina il file sulla base di un campo formato dai caratteri dal 2 al 3 del secondo campo delle righe del file Sistemi Operativi - Tools 28

Indice Alcuni comandi avanzati find grep tar, gzip I filtri sort sed awk Sistemi Operativi - Tools 29 sed - Stream text EDitor E un filtro in grado di modificare il contenuto di un file in base a certi criteri specificati in uno script sed [-n] script [file ] sed [-n][-e script][-f script_file][file ] filtra stdin secondo quanto specificato in script -n non ripete stdin su stdout; stampa solo quel che viene richiesto dallo script e non ripete il resto del file Sistemi Operativi - Tools 30

sed - Stream text EDitor Sintassi di script: [address[,address]] function [args] address: numero di linea oppure una espressione regolare function: comando che agisce sul pattern match args: argomenti di function Sistemi Operativi - Tools 31 sed functions p stampa la riga corrente d elimina la riga corrente q termina l elaborazione y/orig/subs/ trasforma i caratteri in orig con quelli in subs Sistemi Operativi - Tools 32

sed functions s/regexp/replace/flags sostituisce i pattern che soddisfano regexp con replace flags: num sostituisce solo num occorrenze g sostituisce tutte le occorrenze p stampa la riga se ha sostituito Sistemi Operativi - Tools 33 sed: esempi sed 1,3 d filename (cancella dalla riga 1 alla 3) sed 3,$ d filename (cancella dalla 3 alla fine) sed -n /^pippo/ p filename (stampa solo se comincia con pippo, altrimenti il n inibisce la stampa) sed -f sedfile filename Sistemi Operativi - Tools 34

1,1 { s/^/inizio:/ s/$/ -- Fine/ } sed 1,3 d filename /\/\*.*\*\// d sed 3,$ d filename sed -n /^pippo/ p filename sed -f sedfile filename sed: esempi Sistemi Operativi - Tools 35 1,1 { s/^/inizio:/ s/$/ -- Fine/ } sed 1,3 d filename /\/\*.*\*\// d sed 3,$ d filename sed -n /^pippo/ p filename sed -f sedfile filename sed: esempi Uno Due Tre A B C /* Commento */ Sistemi Operativi - Tools 36

sed: esempi 1,1 { [per la sola prima riga] s/^/inizio:/ s/$/ -- Fine/ } sed 1,3 d filename /\/\*.*\*\// d [cancella i commenti] sed 3,$ d filename sed -n /^pippo/ p filename sed -f sedfile filename Uno Due Tre A B C /* Commento */ Inizio: Uno Due Tre --Fine A B C Sistemi Operativi - Tools 37 Indice Alcuni comandi avanzati find grep tar, gzip I filtri sort sed awk Sistemi Operativi - Tools 38

Origini awk è stato inventato nel 1977 da A. V. Aho P. J. Weinberger B. W. Kernighan E un linguaggio di elaborazione basato sulla ricerca di corrispondenze tra pattern Sistemi Operativi - Tools 39 Funzionamento di base Per ciascuna linea del file aperto, si cercano dei record che corrispondono a un determinato pattern Quando viene trovata una corrispondenza, viene svolta una determinata azione La sintassi è simile a quella del C Sistemi Operativi - Tools 40

Funzionamento di base Per ciascuna linea del file aperto, si cercano dei record che corrispondono a un determinato pattern Quando viene trovata una corrispondenza, viene svolta una determinata Non ci si azione deve preoccupare La sintassi è simile a quella di aprire del Cil file e di ciclare al suo interno Sistemi Operativi - Tools 41 File di input Il file di input è organizzato in record (una riga del file) Un record è organizzato in campi (le varie parole della riga) Sistemi Operativi - Tools 42

File di input (cont) Variabili: RS: record separator FS: field separator (lo spazio) $0: l intero record $1: primo campo $n: n-esimo campo Sistemi Operativi - Tools 43 Esecuzione E possibile usare awk sia a linea di comando che tramite un file di script Linea di comando: awk comando < inputfile > outputfile Script: awk -f scriptfile < inputfile > outputfile Sistemi Operativi - Tools 44

Struttura dei comandi Ogni comando di awk è formato da un pattern e da un azione pattern {azione;} Decide quando viene eseguita l azione Può essere formata da una o più istruzioni. E eseguita solo se il pattern è vero Sistemi Operativi - Tools 45 Struttura dei comandi (cont) Se non vi è un pattern, viene eseguita sempre l azione Se non vi è un azione, viene stampata la riga corrente Sistemi Operativi - Tools 46

Esempi awk $1== Ciao < inputfile stampa tutte le righe in cui la prima parola è Ciao awk {print $1;} < inputfile stampa il primo campo di ogni riga del file Sistemi Operativi - Tools 47 Formato dei pattern I pattern possono essere: espressioni regolari / expr / operatori di confronto $1 == Ciao operatori relativi a intervalli ( cond1, cond2 ) Sistemi Operativi - Tools 48

Espressioni regolari \ ^ $. [abc] [a-z] [^abc] sequenza di escape inizio della riga fine della riga un carattere uno dei caratteri sequenza di caratteri tutti i caratteri tranne a, b, c Sistemi Operativi - Tools 49 Espressioni regolari (cont) uno due * +? soddisfatta da uno o due 0 o più occorrenze del simbolo precedente 1 o più occorrenze del simbolo precedente [AB]? È soddisfatta dalla stringa vuota o da A o da B Sistemi Operativi - Tools 50

Espressioni regolari (cont) ( ) combina espressioni regolari. Cara(mella bina) è soddisfatta da: - Caramella - Carabina Sistemi Operativi - Tools 51 Espressioni regolari - Esempi /^((may) (MAY) (May))$/ { print Maggio ; } /^[Tt]itolo.*/ { print \nnuovo titolo. ; } Sistemi Operativi - Tools 52

Operatori di confronto == uguale < minore > maggiore <= minore o uguale >= maggiore o uguale!= diverso ~ soddisfatto dall espressione regolare!~ non soddisfatto dall espressione regolare Sistemi Operativi - Tools 53 Operatori di confronto (cont) &&! AND logico OR logico NOT logico Sistemi Operativi - Tools 54

Operatori di confronto - Esempi $1 == Bob { print Bob stuff ; } $1!~ /[Mm]aggio/ { print Non è maggio ; } ($1 == Bob ) && ($2 ~ /[mm]*xy?rr$/) { print Il primo campo è Bob. Il secondo è stato scritto da un ubriaco ; } Sistemi Operativi - Tools 55 Operatori relativi a intervalli cond1, cond2 Il pattern diventa vero quando si verifica la prima condizione e rimane vero fino a quando si verifica la seconda condizione Funziona solo con nawk o gawk Sistemi Operativi - Tools 56

Operatori relativi a intervalli (cont) $1== 1, $1== CIAO { print $2; } Prova ciao 1 numero uno 2 numero due CIAO Finito 3 numero tre numero numero Finito Sistemi Operativi - Tools 57 Pattern predefiniti BEGIN: eseguito prima dell apertura del file di input END: eseguito dopo aver letto tutto il file di input Sistemi Operativi - Tools 58

Esempio BEGIN { FS= : ; } $1 ~ /[0-9]/ { print $3; } Prova:ciao 1:numero:uno 2:numero:due CIAO:Finito 3:numero:tre uno due tre Sistemi Operativi - Tools 59 Azioni Uso delle variabili Stringhe Array Operatori Flusso condizionale Loop Input avanzato Funzioni Interazione con la shell Sistemi Operativi - Tools 60

Variabili Possono essere utilizzate delle variabili Le variabili possono essere: indicanti un campo, precedute dal $ ($0, $n) predefinite definite dall utente (non devono essere dichiarate) Sistemi Operativi - Tools 61 Variabili predefinite ENVIRON array simbolico delle variabili d ambiente. Esempio: ENVIRON[ PATH ] FS separatore del campo di input IGNORECASE 0 se si fa distinzione, 1 no NF numero di campi nel record NR numero di record già letti Sistemi Operativi - Tools 62

Esempi print NF; 3 AA BB CC print $NF; CC print $NF ; $NF Sistemi Operativi - Tools 63 Operatori per le stringhe Concatenazione: basta mettere una dietro l altra le stringhe: awk '{x= Ciao"; y= da me"; print x,y;} < /etc/hosts Ciao da me Ciao da me Ciao da me (perché in questo caso /etc/hosts ha tre righe) Sistemi Operativi - Tools 64

Funzioni per le stringhe sub (reg, string, target), gsub (reg, string, target) sostituisce nella stringa target la prima occorrenza (tutte se si usa gsub) della sottostringa che soddisfa l espressione regolare reg con string length (s) restituisce la lunghezza della stringa s match (string, reg) restituisce la posizione in string della prima sottostringa che soddisfa l espressione regolare reg Sistemi Operativi - Tools 65 Funzioni per le stringhe printf (s, ), sprintf (s, ) come in C split (string, vec, delim) suddivide string negli elementi dell array vec in base al delimitatore delim. Restituisce il numero di elementi in vec. substr (string, position, len) tolower (s), toupper (s) Sistemi Operativi - Tools 66

Array Con indice numerico: v[5] i=3; v[i]= CIAO Con indice simbolico: giorni[ gennaio ] = 31; giorni[ febbraio ] = 28; Sistemi Operativi - Tools 67 Array (cont) Esempio: giorni[ gennaio ] = 31; giorni[ febbraio ] = 28; Funzioni per vettori con indice simbolico: gennaio in giorni ==> restituisce true delete giorni[ marzo ] Sistemi Operativi - Tools 68

Array multidimensionali Con indice numerico: V[5,3] Con indice simbolico: V[ abc, def ] Con indice misto: V[1999, gennaio ] Sistemi Operativi - Tools 69 Operatori x+y, x-y, x*y, x/y x^y, x%y ++x, x++, --x, x-- sin(x), cos(x) rand( ) (numero casuale tra 0 e 1) systime( ) (numero di secondi dal 1 gennaio 1970) Sistemi Operativi - Tools 70

Flusso condizionale if (cond) { istruzione vera } else { istruzione falsa } condizione? istruzionevera : istruzionefalsa; Sistemi Operativi - Tools 71 Loop do { istruzione } while (condizione) for (init; cond; op) { istruzione } for (i in array) { istruzione } Sistemi Operativi - Tools 72

Loop (cont) while (condizione) { istruzione } Sistemi Operativi - Tools 73 Input avanzato exit emula la fine del file (se è presente il pattern END, viene eseguito) getline legge una nuova linea e la copia in $0. Restituisce 1 se la lettura ha avuto successo. Sistemi Operativi - Tools 74

Funzioni Funzionano con nawk o gawk function myfunc (parametri) {... return x; } Sistemi Operativi - Tools 75 Interazione con la shell system (shellcommand); avvia una shell ed esegue il comando specificato; es. system( ls la ) utilizzando la redirezione print Ciao > nomefile.txt ; print myvar more ; Sistemi Operativi - Tools 76

Esempio Bookmark file: + categoria url1 descrizione url2 descrizione... + Università http://www.polito.it Politecnico di Torino http://www.unito.it Università di Torino + Musica http://www.mp3.com Sito per mp3 Sistemi Operativi - Tools 77 Esempio <HTML><HEAD><TITLE>My bookmarks</title></head> <BODY> <H1>Università</H1><BR><UL> <LI> <A HREF="http://www.polito.it"> Politecnico di Torino</A></LI> <LI> <A HREF="http://www.unito.it"> Università di Torino</A></LI> </UL> <H1>Musica</H1><BR><UL> <LI> </UL> </BODY> </HTML> <A HREF="http://www.mp3.com"> Sito per mp3</a></li> Sistemi Operativi - Tools 78

Intestazione BEGIN { FS = ; firsttime = 1; printf ( <HTML><HEAD><TITLE> ); printf ( My bookmarks</title></head> ); printf ( \n<body>\n ); } Sistemi Operativi - Tools 79 Titolo $1 == + { if (firsttime == 0) { print </UL> ; } else { firsttime = 0; } print <H1> $2 </H1><BR><UL> ; } Sistemi Operativi - Tools 80

URL e fine $1!= + { print <LI><A HREF=\ $1 \ > $2 </A></LI> ; } END { print </UL></BODY></HTML> } Sistemi Operativi - Tools 81