Lab. di Sistemi Operativi - Esercitazione n 4- a.a Sed e Awk

Documenti analoghi
Lab. di Sistemi Operativi - Esercitazione n 1 - a.a. 2016/2017. Comandi Shell

- comando sort: con chiavi di ordinamento -

Il sistema operativo LINUX Esercitazione 3

Lab. di Sistemi Operativi - Esercitazione n 2- - comando di ricerca: grep -

Manipolazione di testo

Esercitazione 1 la shell

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

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

Lab 19 Unix e comandi di base

Gestione avanzata dei file

Lab. di Sistemi Operativi - Esercitazione n 1 - a.a. 2018/2019. Comandi Shell

Lab. di Sistemi Operativi - Esercitazione - Comandi Shell

L utility Unix awk [Aho-Weinberger-Kernighan]

L utility Unix awk [Aho-Weinberger-Kernighan]

Lab. di Sistemi Operativi - Esercitazione n 1 - a.a. 2015/2016. Comandi Shell

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

Laboratorio di sistemi operativi A.A. 2010/2011 Gruppo 2 Gennaro Oliva Soluzioni della prova intercorso

Lezione 3: Programmazione della Shell di Unix

Shell BASH. Variabili Redirezione

Lab. di Sistemi Operativi - Esercitazione n 3 - a.a. 2016/2017. Script shell

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

Laboratorio di sistemi operativi A.A. 2010/2011 Gruppo 2 Gennaro Oliva Processi

Lezione 8. Esercitazione su AWK. Sistemi Operativi

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

Filtraggio di stream di testo

Fondamenti di Informatica e Laboratorio T-AB Ingegneria Elettronica e Telecomunicazioni. Lab Shell. Lab-Shell 1

Manipolazioni elementari di flussi di testo strutturati

Ulteriori comandi sui file

Introduzione a UNIX shell e file comandi. Sistemi Operativi T AA

Sistemi Operativi e informatica 1

Corso di Laboratorio di Sistemi Operativi

Il filesystem di Unix/Linux (I)

Ulteriori comandi sui file

Introduzione alla programmazione nella shell di Unix 10 Maggio 2005

Page 1. Programmazione. Shell e programmazione. File comandi (script) Introduzione alla programmazione nella shell di Unix

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

Lavorare in ambiente UNIX. Prompt dei comandi (shell) Pipe e filtri (I/O) Tips and tricks

Esercitazione GNU/Linux n. 2

Laboratorio di Internet I Il sistema operativo Linux

Introduzione a UNIX shell e file comandi. Sistemi Operativi T AA

Lesson #7. Shell Script. Roberto De Virgilio

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

Shell: variabili di sistema PATH HOME USER PWD SHELL HOSTNAME. Per visualizzare il valore di tutte le variabili d ambiente si usa il comando set

Introduzione a UNIX shell e file comandi

Espansione della shell 1) Espansione delle parentesi graffe

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

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

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

SHELL: File e Filesystem

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

Sistemi Operativi 8 Laboratorio linea 2

Per visualizzare il valore di tutte le variabili d ambiente si usa il comando env

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

Esercizi di programmazione in shell - Gennaio 2004

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

Introduzione ai sistemi GNU/Linux

- Controllo di flusso: for -

Lezione 2: Comandi avanzati della Shell di Unix

Il sistema operativo LINUX Tools e comandi avanzati

Gestione dei files in linguaggio C. Fondamenti

Scrivere testi - ed. Un programma che consente di creare file testo si dice editor. L editor standard e più semplice di UNIX è ed.

Compito scritto 12 Luglio 2004

Lab 00 Introduzione e Sistema Unix

BASH: Bourne Again Shell (3)

CORSO LINUX PER LA CERTIFICAZIONE LPI ESSENTIALS

Lezione XXII.I La gestione dei file Fondamenti

Filtri e pipeline. qualsiasi comando unix ha a disposizione 3 file con cui comunicare con il resto del sistema: standard input in ingresso

Lezione 15 File system: uso

Cosa è un sistema operativo?

Cosa è un sistema operativo?

Introduzione a Unix/Bash. Insieme minimo di strumenti per interagire con la shell Bash, compilare ed eseguire

Processi. Introduzione. Effective user/group id. Fork

Comandi filtro: sed. Se non si specificano azioni, sed stampa sullo standard output le linee in input, lasciandole inalterate.

LABORATORIO DI SISTEMI OPERATIVI

Elaborato Shell. Elementi di architettura e sistemi operativi 2016/2017

CORSO LINUX PER LA CERTIFICAZIONE LPI ESSENTIALS

Lezione 2: Comandi avanzati della Shell di Unix

Esercizi su permessi

COSA È UN SISTEMA OPERATIVO (SO)? È un programma (o un insieme di programmi) che agisce come intermediario tra l utente e l hardware del computer:

Introduzione. P4 termina prima di P3, P2 e P3 prima di P1 P1 P2 P3 P4 P1 P1 P2 P3 P4. Padre. P1,..., P4 sono processi. Figlio

COSA È UN SISTEMA OPERATIVO? È un programma (o un insieme di programmi) che agisce come intermediario tra l utente e l hardware del computer:

Laboratorio di Sistemi Operativi Marzo-Giugno 2008 Matricole congrue 0 mod 3

Programmi awk - campi

Il filesystem di Unix/Linux (I)

Introduzione a UNIX shell e file comandi

a strange language, shaped as much by history as by design

Ambienti di Programmazione per il Software di Base

Appello di Fondamenti di Informatica 12/09/2017

Esercizi in Laboratorio

Traccia 1. Nome Cognome Matricola Firma. Spazio Riservato alla Commissione. Esercizio 1 Esercizio 2 Esercizio 3 Esercizio 4 Esercizio 5 Totale

Sistemi Operativi. Corso di Laurea Triennale in Ingegneria Informatica. Daniel Cesarini

Esercizi in Python. Docente: Domenico Daniele Bloisi

Uso del terminale in ambiente UNIX

Il sistema operativo LINUX Script di Shell

awk: riconoscere ed elaborare pattern

apt-get, installazione pacchetti software bash exercises

Keep it simple, stupid!

Transcript:

Lab. di Sistemi Operativi - Esercitazione n 4- a.a. 2015 2016 Sed e Awk 1

Sommario Comandi di ricerca: Sed (Stream Editor) Selezione di un range di righe Ricerca e sostituzione AWK 2

- Stream editor: sed - 3

Esercizio n 1 Utilizzando il comando sed, stampare su video le prime cinque righe del file /etc/passwd Esempio: sed [address1[, address2 ] ]d (selezione di un range di righe) Soluzione sed 6,$d /etc/passwd d è il comando di cancellazione. In questo caso incomincia ad eliminare tutte le righe a partire dalla sesta fino all ultima riga contenuta nel file ($ sta per ultima riga del file) 4

Esercizio n 2 Supponendo di avere un file gruppilso.txt con la lista dei gruppi e dei relativi punteggi formattato usando ; come separatore di campo. Esempio di file: NomeGruppo;Punteggio;matricola1; ;matricolan lso01infona03;69,00;566100; ;566101 lso01infona08;70,00;566300; ;566504 lso01infona21;65,33;566500; ;566601 lso01infona15;63,56;566600, ;566432 ; ; ;..; ; ; ; ; 5

Esercizio n 2 Sostituire utilizzando il comando sed tutti i separatori di campo ; con caratteri di spazio in modo tale da avere il seguente output: NomeGruppo Punteggio lso01infona03 69,00 lso01infona08 70,00 lso01infona21 65,33 lso01infona15 63,56 6

Soluzione Esercizio n 2 Utilizzo delle quattro parti del comando sostituzione (s) sed s/regexp/replacement/flags <nome_file> Soluzione sed s/;/ /g gruppilso.txt oppure cat gruppilso.txt sed s/;/ /g 7

Esercizio n 2 Utilizzando il comando sed, nel file /etc/passwd per gli utenti che usano bash sostituire il contenuto del campo password con password Esempio: root:x:0:0:root:/home/root:/bin/bash root:password:0:0:root:/home/root:/bin/bash Soluzione sed /bash/s/:x:/:password:/g /etc/passwd flag g: applica la sostituzione con il carattere di spazio a tutte le occorenze ; 8

Esercizio n 2 Utilizzando il comando sed, nel file /etc/passwd per gli utenti root cancellare tutti i path Esempio: root:x:0:0:root:/home/root:/bin/bash root:password:0:0:root:/home/root:/bin/bash Soluzione sed /root/s/:/*.:/::/g /etc/passwd flag g: applica la sostituzione con il carattere di spazio a tutte le occorenze ; 9

Esercizio n 2 Nel file gruppilso.txt sostituire utilizzando il comando sed tutti i separatori di campo ; con caratteri di spazio e commentare con # tutti i gruppi che contengono matricole 566-xxx Soluzione sed e /566/s/^/#/g e s/;/ /g gruppilso.txt Un modo di combinare più comandi è quello di usare e prima di ciascun comando 10

Esercizio n 3 Nel file gruppilso.txt utilizzando il comando sed nelle prime 3 righe sostituire tutte le matricole 566-xxx con 566, dalla 4 righa cancellare le matricole 566-xxx Soluzione sed -e 1,3s/566*.;/566;/g -e 4,$s/566*.;/;/g 11

- AWK - 12

- Esempi d uso - AWK: ha bisogno di due elementi per funzionare: il flusso in input (file_testo) e il codice per elaborarlo (codice_awk). Quindi: awk -opzioni '{ codice_awk }' file_testo Oppure cat file_testo awk -opzioni '{ codice_awk }' 13

Esercizio n 4 Applicare la lista dei gruppi ottenuta nell Esercizio N 2, al comando awk che con il comando sort deve produrre in output una lista dei gruppi in ordine decrescente di punteggio: Output: Punteggio NomeGruppo 70,00 lso01infona08 69,00 lso01infona03 65,33 lso01infona21 63,56 lso01infona15 14

Soluzione Esercizio n 4 cat gruppilso.txt sed e s/;/ /g awk '{print $2 " " $1}' sort nr output lso01infona03 69,00 lso01infona08 70,00 lso01infona21 65,33 lso01infona15 63,56 input awk '{print $2 " " $1}' output 69,00 lso01infona03 70,00 lso01infona08 65,33 lso01infona21 63,56 lso01infona15 input sort -nr output 70,00 lso01infona08 69,00 lso01infona03 65,33 lso01infona21 63,56 lso01infona15 15

Esercizio n 5 Ripetere l Esercizio N 4 senza utilizzare il comando sed (solo awk e sort ) partendo quindi da un file gruppilso.txt avente il seguente contenuto: NomeGruppo; Punteggio lso01infona03;69,00 lso01infona08;70,00 lso01infona21;65,33 lso01infona15;63,56 ; ; 16

Soluzione Esercizio n 5 awk F ; '{print $2 " " $1}' gruppilso.txt sort nr output 69,00 lso01infona03 70,00 lso01infona08 65,33 lso01infona21 63,56 lso01infona15 input sort -nr output 70,00 lso01infona08 69,00 lso01infona03 65,33 lso01infona21 63,56 lso01infona15 11/04/2012 Laboratorio di sistemi operativi 1 a.a. 2011/2012 17

Esercizio n 6 Facendo uso del comando awk, elencare gli utenti diversi che usano bash come shell di default presenti nel file /etc/passwd Esempio: root:x:0:0:root:/home/root:/bin/bash Soluzione cat /etc/passwd awk 'BEGIN {FS=":"} ($7== /bin/bash ) {print $1}'

Esercizio n 7 Facendo uso del comando awk, elencare tutti i pid e gli username dei processi con CPU% maggiore di 0.1. Stampare quindi l utilizzo totale di CPU da parte di tali processi Soluzione ps aux awk {if($3 > 0.1){print $3;tot+=$3}} END {print totale: tot } 19

Esercizio n 8 Facendo uso del comando awk, elencare tutti i pid e ppid dei processi dell attuale user. Stampare quindi il numero totale di processi Soluzione ps u $USER awk {print $1 $2; tot+=1} } END {print totale: tot } 20

- Fine Esercitazione - 21