1 / 10

Elaborazione delle tracce con AWK

Elaborazione delle tracce con AWK. Introduzione ad AWK. AWK è un linguaggio per la manipolazione di file di testo organizzati in righe e colonne Pertanto è particolarmente adatto ad elaborare i file di traccia prodotti da NS-2 È semplice da usare È interpretato Ha una sintassi simile al C.

nell
Download Presentation

Elaborazione delle tracce con AWK

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Elaborazione delle tracce con AWK

  2. Introduzione ad AWK • AWK è un linguaggio per la manipolazione di file di testo organizzati in righe e colonne • Pertanto è particolarmente adatto ad elaborare i file di traccia prodotti da NS-2 • È semplice da usare • È interpretato • Ha una sintassi simile al C

  3. Struttura di uno script AWK • Uno script AWK è costituito da 3 blocchi (i blocchi vuoti possono essere omessi): BEGIN{ # Il primo blocco viene eseguito solo all’inizio dell’elaborazione del testo } { # Il secondo blocco è eseguito per ognuna delle righe del testo elaborato } END{ # Il terzo blocco è eseguito dopo l’ultima riga }

  4. Esempio 1 BEGIN{ # inizializza contatore contaRighe=0; } { # per ogni riga elaborata incrementa contatore contaRighe++; } END{ #stampa contatore printf “%d\n”,contaRighe; } awk –f nomeFileScript.awk nomeFileTesto.txt

  5. Lettura delle colonne di una riga • Durante l’esecuzione del blocco centrale, per ogni riga elaborata: • $0 contiene l’intera riga • $1 contiene la prima colonna • $2 contiene la seconda colonna • … • $10 decima colonna • …

  6. Esempio 2 { #per ogni riga stampa l’elemento della 1a e della 5a colonna printf “%s %s\n”,$1,$5; }

  7. Esempio 3 { # stampa solo le righe che in prima colonna contengono ABC if ( $1 ~ /ABC/ ) { printf “%s\n”,$0; } }

  8. Esempio 4 { # stampa solo le righe che hanno la prima colonna uguale a ABC if ( $1 == “ABC” ) { printf “%s\n”,$0; } }

  9. Esempio 1 con NS2 # Stampare l’istante di ricezione dei pacchetti e l’identificativo BEGIN{ printf “Istante\tPacchetto\n”; } { if ( ( $4 ~ /cbr/ ) && ( $1 ~ /r/ ) ) { printf “%e\t%d\n”,$2,$11; } } r 1.84471 2 1 cbr 210 ------- 1 3.0 1.0 195 600

  10. Esempio 2 con NS2 # conta il numero di pacchetti scartati BEGIN{ scartati=0; } { if ( ( $4 ~ /cbr/ ) && ( $1 ~ /d/ ) ) { scartati++; } } END{ printf “%d\n”,scartati; } d 1.84609 2 3 cbr 210 ------- 0 0.0 3.1 225 610

More Related