grep 'README' listatrova tutte le righe che contengono la parola 'README'.
grep -3 'README' listatrova tutte le righe che contengono la parola 'README' e le stampa assieme alle 3 righe precedenti e alle 3 righe successive.
grep -3 'lezione' lista
grep -v 'tentativo' listastampa tutte le righe che non contengono la parola tentativo
grep '[0-2][0-9]:[3-5][0-9]' listatrova gli orari con minutaggio che parte dal trentesimo minuto
grep 'violi.*\.sty' listatrova tutte le righe che contengono la parola 'violi', seguita da un numero arbitrario di caratteri e poi seguita dai caratteri '.sty'
grep 'violi\|rossi' listatrova tutte le righe che contengono la parola 'violi' o la parola 'rossi'
grep 'violi\|rossi.*.tex' listatrova tutte le righe che contengono la parola 'violi', oppure la parola 'rossi' seguita da un numero arbitrario di caratteri e poi seguita dai caratteri '.tex'
grep '\(violi\|rossi\).*.tex' listatrova tutte le righe che contengono la parola 'violi', oppure la parola 'rossi', entrambe seguite da un numero arbitrario di caratteri e poi seguita dai caratteri '.tex' .
1.nazione francia,città parigi 2.nazione italia,città milano 3.nazione germania,città dresda
sed 's/,/,\ /g' cittasostituisce tutte le virgole con virgole seguite da spazio
sed 's/nazione/nazione:/g' cittasostituisce tutte le occorrenze della stringa 'nazione' con la stringa 'nazione:'
sed 's/città\|nazione/&:/g' cittasostituisce tutte le occorrenze delle stringhe 'città' o 'nazione' con la stessa stringa trovata seguita da ':'
sed 's/\(città\|nazione\)/\1:/g' cittadà lo stesso risultato.
sed 's/.*\ /YYY/g' cittasostituisce la piu' lunga sequenza di caratteri per riga che si conclude con uno spazio con i caratteri 'YYY'
sed 's/[^\ ]*\ /Y;/g' cittasostituisce la piu' lunga sequenza di caratteri diversi dallo spazio seguiti da uno spazio, con i caratteri 'Y;'
sed 's/[a-z]*\ /Y;/g' cittasostituisce la piu' lunga sequenza di lettere dell'alfabeto minuscolo seguite da uno spazio, con i caratteri 'Y;'
sed 's/\(nazione\)\(.*,\)/NAZIONE\2\2/g' cittatrova tutte le righe contenenti la stringa 'nazione' seguita da un numero arbitrario di lettere e da una virgola; sostituisce 'nazione' con 'NAZIONE' e ripete due volte cio' che segue 'nazione' fino alla virgola.
sed 's/\(nazione\ \)\(.*\),\(città\)\(.*\)/\4\ \3,\ \2\ \1/g' cittascambia l'ordine delle varie sottosequenze trovate
%% [ \t\n] ; \{ printf("BEGIN\n"); \} printf("END\n"); [()] printf("%s\n",yytext); "//"[^\n]*[\n] printf("rem: //\n"); if|else printf("key: %s\n",yytext); [A-Za-z][A-Za-z0-9]* printf("var: %s\n",yytext); ==|\>|\<|\<=|\>=|!= printf("opc: %s\n",yytext); [0-9]+(\.[0-9]+)? printf("num: %s\n",yytext); [A-Za-z]+\([A-Za-z",]*\);? printf("fun: %s\n",yytext); %%
flex tokensottenendo come output il file lex.yy.c
cc lex.yy.c -lfl -o lexicalottenendo il file eseguibile 'lexical'.
//frammento di un programma C main() { if (budget>=1999.99) stampa("ok"); else stampa("ko"); }ottenendo una riscrittura interna del programma che evidenzia variabili, commenti, numeri, parole chiave....
Sebbene corto, il programma precedente dà vari problemi. E' necessario quindi precisare maggiormente e estendere le specifiche del file 'tokens', ad esempio:#include#include #include MODULE_INFO(vermagic, VERMAGIC_STRING); static const char __module_depends[] __attribute_used__ __attribute__((section(".modinfo"))) = "depends=";
[A-Za-z][A-Za-z0-9]* printf("var: %s\n",yytext);con
[_A-Za-z][_A-Za-z0-9]* printf("var: %s\n",yytext);
if|else printf("key: %s\n",yytext);con
if|else|static printf("key: %s\n",yytext);
<!DOCTYPE sessione SYSTEM "esempio.dtd">Salviamo il nuovo file con nome EsempioDTD.xml Per verificare se il file xml è generato dalla grammatica definita nella DTD, ovvero se è valido, possiamo usare il comando
xmllint --valid --noout EsempioDTD.xml
xmllint --valid --noout EsempioConErrori.xmlotteniamo varie incongruenze tra la struttura del file xml e la struttura definita dalla DTD: il file non è valido. Provate a individuare e correggere gli errori.
<?xml-stylesheet type="text/css" href="FoglioDiStile.css"?>
xmllint --valid --noout EsempioUnico.xml