Quick Referenz zum awk © 1999 Dieter Heupke Systemberatung GmbH Syntax awk [-F fs] [-v var=value] [program| -f prog] [source ..] -F -v -f Angabe eines Feldseparators Variablenzuweisung (vor Ausführung von BEGIN) Angabe eines Programmfiles Pattern und Action Pattern1 {action1} Pattern2 {action2} ... PatternX {actionX} BEGIN END Das Programm besteht aus Pattern-Action Paaren, die auf jeden Input Record komplett angewendet werden. Pattern: Stellt die Bedingung dar Action : Legt die Ausführung fest Definiert z.B: Variablen vor der Ausführung des Prg. Abschließende Anweisungen nach Ausführung des Prg. System Variablen $0 $1 $2 $NF NF Inhalt Inhalt Inhalt . . . Inhalt Anzahl des gesamten Records des ersten Feldes des zweiten Feldes FS OFS RS ORS Feldseparator für Eingabe Feldseparator für Ausgabe Recordseparator für Eingabe Recordseparator für Ausgabe (default (default (default (default OFMT Ausgabeformat für Zahlen (default %.6g) NR FNR FILENAME Nummer des aktuellen Records Recordnummer bezogen auf aktuelle Datei Name der aktuellen Eingabedatei des letzen Feldes der Felder im aktuellen Record white space) blank) newline) newline) Reguläre Ausdrücke * . [a-zA-Z] [^a-z] Wiederholung des voranstehenden Ausdrucks 0 oder mehrmals Ausdruck für 1 beliebiges Zeichen Ausdruck für 1 beliebiges Zeichen aus der Zeichenklasse negierte Zeichenklasse Erweiterte Reguläre Ausdrücke im awk | + ? () ODER Wiederholung 1 oder mehrmals Wiederholung 0 oder 1 mal Zusammenfassung von REs Operatoren für Reguläre Ausdrücke var ~ RE var !~ RE Überprüfung ob RE auf Inhalt von var paßt Überprüfung ob RE auf var nicht paßt( z.B. $1 !~ /[0-9][a-g]/ ) Numerische Funktionen sqrt(expr) log(expr) exp(expr) int(expr) cos(expr) sin(expr) Quadratwurzel bilden Logarithmus zur Basis 2 Exponentialwert von expr ganzzahliger Teil von expr Cosinus Sinus String Funktionen sub(r,s,[i]) gsub(r,s,[i]) length length(s) substr(s,m,n) split(s,a,c) index(s1,s2) match(r,s) sprintf(fmt,..) tolower(s) toupper(s) Ersetze ersten Ausdruck r durch s [innerhalb von i sonst] $0 Ersetze alle Ausdrücke r durch s [innerhalb von i sonst] $0 Anzahl der Zeichen des aktuellen Records Anzahl der Zeichen des String (s) Ausgabe des Teilstrings s der Länge n ab Position m s in a[1] ...a[n] nach c (=Sep.) zerlegen; liefert n zurueck Position von s2 in s1 (numerisch), 0 falls nicht vorhanden Position von Ausdruck r in s, 0 falls nicht vorhanden formatierte Ausgabe in eine Variable entsprechend printf Wandelt Groábuchtaben in Kleinbuchstaben Wandelt Kleinbuchstaben in Großbuchtaben Zuweisungen = += -= /= %= *= Zuweisungsoperator a=a+n entspr. a+=n a=a-n entspr. a-=n a=a/n entspr. a/=n a=a%n entspr. a%=n a=a*n entspr. a*=n Logische Operatoren || && ! Oder Und Nicht Operatoren < > <= >= == != + * / % ++ -- Kleiner als Größer als Keiner oder gleich Größer oder gleich Identität Ungleich Addition Subtraktion Multiplikation Division Modulo (Divisionsrest) Inkrement (Erhöhen um 1) Dekrement (Vermindern um 1) Stringverknüpfungen $1 = $2" "$3 Formate für printf %d %u %x %o %c %s %f %e %g Ganzzahl positive Ganzzahl Ganzzahl hexadezimal Ganzzahl oktal Zeichen String reele Zahl reele Zahl E-Format kürzeste Schreibweise Escape Zeichen \a \b \f \n \r \t \v \ddd \xhhh Alert Backspace Seitenvorschub Neue Zeile Carriage Return Tabulator (horizontal) Tabulator (vertikal) Oktalwert (z.B eines ASCII-Zeichens, \007 = Bell) Hexadezimalwert Schleifen, Entscheidungszweige while (condition) { statement } for (init; test; reinit) { statement } if (condition) { statement } [else { statement }] Innerhalb der while und for Schleife break continue Sprung aus der Schleife und Fortsetzung dahinter Sprung aus der Schleife an den Schleifenkopf Unterbrechungen des awk-Programmes next getline exit Unbedingte Unterbrechung und von vorn mit neuem Record Holt neuen Input Record und fährt im Programm fort Abbruch des awk-Programms Kommunikation mit dem Betriebssystem system(cmd) ENVIRON[var] print > file print >>file print | cmd Führt HP-UX Kommando aus und liefert exit Status Array, welches die Shell-Umgebung enthält Ausgabeumlenkung, anlegen/löschen bei Start Ausgabeumlenkung, anhängen in jedem Fall Piplining (aktuelle Zeile auf STDIN des HP-UX-cmds) Arrays split(s,a,c) s in a[1] ...a[n] nach c (=Separator) zerlegen; liefert n zurück for (var in array) { statement } Holt Array Elemente zurueck delete array[x] löscht ein Array Element Funktionen Funktions-Definitionen stehen anstelle eines Pattern-Action-Paares function f(x,y,...) { cmd1; ... } return(x) Beendet Funktion und liefert x zurück
© Copyright 2024 ExpyDoc