Manipolazione di testo

Documenti analoghi
Il filesystem di Unix/Linux (I)

Ulteriori comandi sui file

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

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

Esercizi con grep, sed

I FILTRI SED, GREP e FIND SED

Ulteriori comandi sui file

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

Esercitazione 1 la shell

Esercizio 1: Filtro. Si progetti ed implementi un componente software che realizza un filtro.

Lesson #4. Espressioni Regolari. Roberto De Virgilio

Espansione della shell 1) Espansione delle parentesi graffe

Manipolazioni elementari di flussi di testo strutturati

L utility Unix awk [Aho-Weinberger-Kernighan]

La Shell: esecuzione dei comandi

L utility Unix awk [Aho-Weinberger-Kernighan]

Il filesystem di Unix/Linux (I)

Gestione avanzata dei file

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

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

- comando sort: con chiavi di ordinamento -

Espressioni Regolari. Giancarlo Massidda

Modulo 2 - Appendice 3 L'editor vi e cenni su sed

Keep it simple, stupid!

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

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

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

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

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

BREVISSIMA GUIDA AL SISTEMA UNIX / LINUX

Corso di Laboratorio di Sistemi Operativi

Lab. di Sistemi Operativi - Esercitazione - Comandi Shell

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

Esercitazione GNU/Linux n. 2

Sistemi Operativi e informatica 1

Introduzione alla programmazione nella shell di Unix 10 Maggio 2005

4. L editor vi da linea comandi

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

Organizzazione di Sistemi Operativi e Reti

LABORATORIO DI SISTEMI OPERATIVI

Sistemi Operativi. Corso di Laurea Triennale in Ingegneria Informatica. Esercitazione 2. Editor Utenti Permessi

Laboratorio di Sistemi Operativi

Lezione 3: Programmazione della Shell di Unix

Il sistema operativo LINUX Tools e comandi avanzati

I comandi del DOS. Come si fornisce un comando al DOS

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

Lezione 1: Introduzione alla Shell di Unix

Editor, Utenti e Permessi Insegnamento di Sistemi Operativi di Rete Master Universitario in Tecnologie Internet

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

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

Uso del terminale in ambiente UNIX

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

Formattazione avanzata. Modificatori di formato in output Modificatori di formato in input Stream predefiniti

Controllo di flusso negli script: if-then-else

Sistemi Operativi. Corso di Laurea Triennale in Ingegneria Informatica. Esercitazione 2. Editor Utenti Permessi

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

Bash: history list (I)

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

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

Il sistema operativo LINUX Esercitazione 3

Espressioni regolari in UNIX p.1/19

GLI SCRIPT DI SHELL. Shell

Esercitazione 1 SQL: DDL e DML di base

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

1) Le Espressioni regolari

Introduzione ai sistemi UNIX/Linux. Introduzione ai sistemi UNIX/Linux

I Metacaratteri della Shell Unix

Esercitazione 1 SQL: DDL e DML di base

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

I FILTRI SED, GREP (e AWK) Tratto da SED

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

Archiviazione, ricerca dei file e pianificazione dei processi

File binari e file di testo

CORSO LINUX PER LA CERTIFICAZIONE LPI ESSENTIALS

Lezione 2: Comandi avanzati della Shell di Unix

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

Reti Informatiche. Corso di Laurea Triennale in Ingegneria Informatica. Ing. Daniele Migliorini Vanessa Gardellin & Sara Lioba Volpi

Introduzione ai sistemi UNIX/Linux

Introduzione ai sistemi UNIX/Linux

Shell BASH. Variabili Redirezione

Sistemi Operativi. Corso di Laurea Triennale in Ingegneria Informatica. Esercitazione 3. Gestione utenti (prosecuzione) MBR e GPT Partizioni

SHELL: File e Filesystem

Command line Richiami dei principi di funzionamento

Introduzione a UNIX shell e file comandi

Reti Informatiche Corso di Laurea Triennale in Ingegneria Informatica

Compilazione e Makefile

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

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

SimpleFS - un semplice filesystem. Prova finale di Algoritmi e Principi dell Informatica. DEIB, Politecnico di Milano. Anno accademico

Introduzione ai sistemi GNU/Linux

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

Ambienti di Programmazione per il Software di Base

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

Redirezione, filtri, espressioni regolari

Command line kung fu

Dispositivi standard di I/O. I programmi scritti per terminali a carattere (compresi i comandi per shell) usano 3 dispositivi standard di I/O:

Laboratorio di Informatica di Base Progetto Tandem 2007/2008

Transcript:

Lesson #5 Manipolazione di testo Roberto De Virgilio Sistemi operativi - 2 Dicembre 2015

Comandi filtro: sed Il nome del comando sed sta per Stream EDitor e la sua funzione è quella di permettere di editare il testo passato da un comando ad un altro in una pipeline. # Ciò è molto utile perché tale testo non risiede fisicamente in un file su disco e quindi non è editabile con un editor tradizionale. # sed può anche prendere in input dei file, quindi la sua sintassi è la seguente: # # # # # # sed actions files.

Comandi filtro: sed Se non si specificano azioni, sed stampa sullo standard output le linee in input, lasciandole inalterate.# Se vi è più di un azione, esse possono essere specificate sulla riga di comando precedendo ognuna con l opzione -e, oppure possono essere lette da un file esterno specificato sulla linea di comando con l opzione -f.# Se non viene specificato un indirizzo o un intervallo di indirizzi di linea su cui eseguire l azione, quest ultima viene applicata a tutte le linee in input. Gli indirizzi di linea si possono specificare come numeri o espressioni regolari.

Operatori sed di base Di tutte le operazioni a disposizione di sed, vengono focalizzate, in primo luogo, le tre più comunemente usate. Esse sono print (visualizza allo stdout), delete (cancella) e substitute (sostituisce).## Operatore Nome Effe-o [indirizzo]/p print Visualizza [l indirizzo specificato] [indirizzo]/d delete Cancella [l indirizzo specificato] s/modello1/modello2 subs-tute Sos7tuisce in ogni riga la prima occorrenza della stringa modello1 con la stringa modello2 [indirizzo]/s/modello1/modello2 subs-tute Sos7tuisce, in tu=e le righe specificate in indirizzo, la prima occorrenza della stringa modello1 con la stringa modello2 [indirizzo]/y/modello1/modello2 transform sos7tuisce tu? i cara=eri della stringa modello1 con i corrisponden7 cara=eri della stringa modello2, in tu=e le righe specificate da indirizzo (equivalente di tr) g global Agisce su tu=e le verifiche d'occorrenza di ogni riga di input controllata

Esempi d uso di sed sed 4,$d /etc/passwd# stampa a video soltanto le prime 3 righe del file /etc/passwd: d è il comando di cancellazione che elimina dall output tutte le righe a partire dalla quarta ($ sta per l ultima riga del file); quindi l azione richiede di cancellare le ultime righe del file a partire dalla quarta.# > sed 4,$d /etc/passwd" ##" # User Database" #

Esempi d uso di sed sed 3q /etc/passwd# stesso effetto del precedente comando: in questo caso sed esce dopo aver elaborato la terza riga (3q); l azione consiste quindi di elaborare tutte le linee del file fino alla terza.# > sed 3q /etc/passwd" ##" # User Database" #

Esempi d uso di sed sed /sh/y/:0/_%/ /etc/passwd# sostituisce in tutte le righe che contengono la stringa sh il carattere : con il carattere _ ed il carattere 0 con il carattere %;# > cat /etc/passwd" " root:*:0:0:system Administrator:/var/root:/bin/sh" " > sed /sh/y/:0/_%/ /etc/passwd" " root_*_%_%_system Administrator_/var/root_/bin/sh"

Esempi d uso di sed sed /sh/y/:0/_%/ /etc/passwd# sostituisce in tutte le righe che non contengono la stringa sh il carattere : con il carattere _ ed il carattere 0 con il carattere %; si noti l uso del quoting per impedire che la shell interpreti il metacarattere # > cat /etc/passwd" " root:*:0:0:system Administrator:/var/root:/bin/sh" " > sed /sh/y/:0/_%/ /etc/passwd" " root:*:0:0:system Administrator:/var/root:/bin/sh"

Sostituzione del testo con sed Il formato dell azione di sostituzione in sed è il seguente:# s/expr/new/flags dove# expr è l espressione da cercare# new è la stringa da sostituire al posto di expr,# flags è uno degli elementi seguenti:# num: un numero da 0 a 9 che specifica quale occorrenza di expr deve essere sostituita (di default è la prima),# g: ogni occorrenza di expr viene sostituita,# p: la linea corrente viene stampata sullo standard output nel caso vi sia stata una sostituzione,# w file: la linea corrente viene accodata nel file file nel caso vi sia stata una sostituzione.

Esempi di sostituzioni con sed sed /^root/,/^bin/s/:...:/::/w disabled.txt /etc/passwd# sostituisce la password criptata (lunga 13 caratteri) con la stringa vuota nelle righe in input comprese fra quella che inizia con root e quella che inizia con bin; tali righe sono poi accodate nel file disabled.txt#

Esempi di sostituzioni con sed cat /etc/passwd sed s?/bin/.*sh$?/usr/local&? # cerca tutte le righe in input in cui compare la stringa corrispondente all espressione regolare /bin/.*sh$ (ad esempio /bin/bash) e sostituisce quest ultima con la stringa corrispondente a /usr/local/bin/.*sh$ (ad esempio /usr/local/bin/bash). # Si noti che, siccome il carattere separatore di sed compare nella stringa da cercare, si è usato il carattere? come separatore. # Inoltre il carattere & viene rimpiazzato automaticamente da sed con la stringa cercata (corrispondente a /bin/.*sh$).

Esercizi cancella l ottava riga dell input /etc/passwd# sed 8d /etc/passwd

Esercizi cancella tutte le righe vuote dell input /etc/passwd# sed /^$/d /etc/passwd

Esercizi cancella dall inizio dell input /etc/passwd fino alla prima riga vuota compresa# sed 1,/^$/d /etc/passwd

Esercizi Visualizza solo le righe in cui è presente "Jones" (con l'opzione -n) dell input /etc/passwd sed -n /Jones/p /etc/passwd

Esercizi Sostituisce con "Linux" la prima occorrenza di "Windows" trovata in ogni riga dell'input /etc/passwd# sed s/windows/linux /etc/passwd

Esercizi Sostituisce con "stabilità" tutte le occorrenze di "BSOD" trovate in ogni riga dell'input /etc/passwd# sed s/bsod/stabilità/g /etc/passwd

Esercizi Cancella tutti gli spazi che si trovano alla fine di ogni riga dell'input /etc/passwd# sed s/ *$// /etc/passwd

Esercizi Cancella tutte le righe in cui è presente "GUI" dell'input /etc/passwd# sed /GUI/d /etc/passwd

Esercizi Sostituisci tutte le occorrenze di abc" con def in ciascuna riga dell'input /etc/passwd# sed s/abc/def/g /etc/passwd

Esercizi Rimuovi ogni tabulazione o spazio all inizio di ogni riga dell'input /etc/passwd# sed s/^[ \t]*// /etc/passwd

THANK&YOU&