Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
awk [2017/10/17 22:32] root [Variablen] |
awk [2017/10/19 21:33] (aktuell) root [Built-In] |
||
---|---|---|---|
Zeile 108: | Zeile 108: | ||
Es gibt 3 Arten von Variablen. | Es gibt 3 Arten von Variablen. | ||
- | **Fields** | + | ===== Fields |
* enthalten den Inhalt von Feldern | * enthalten den Inhalt von Feldern | ||
Zeile 115: | Zeile 115: | ||
* $0 enthält den gesamten Record/ | * $0 enthält den gesamten Record/ | ||
- | **Built-In** | + | ===== Built-In |
* Variablen deren Inhalt das Verhalten von awk bestimmen oder die Sjantatusinformationen enthalten | * Variablen deren Inhalt das Verhalten von awk bestimmen oder die Sjantatusinformationen enthalten | ||
* haben normale Namen (ohne irgend etwas davor) | * haben normale Namen (ohne irgend etwas davor) | ||
Zeile 138: | Zeile 138: | ||
awk ' | awk ' | ||
</ | </ | ||
+ | \\ \\ | ||
+ | Field-Seperator kann ein einzelnes Zeichen, eine Zeichenkette oder ein regular Expression sein (was mehrer Zeichen/ | ||
+ | \\ | ||
+ | < | ||
+ | FS=" | ||
+ | </ | ||
+ | In diesem Fall ist der Feldtrenner das Zeichen " | ||
+ | \\ \\ \\ | ||
+ | < | ||
+ | FS=" | ||
+ | </ | ||
+ | In diesem Fall ist die Zeichenkette " | ||
+ | Beispielweise würde: | ||
+ | < | ||
+ | 511);622, 633 | ||
+ | </ | ||
+ | in die Felder: " | ||
+ | Aber: | ||
+ | < | ||
+ | 511;622, 633 | ||
+ | </ | ||
+ | würden nicht zerlegt werden.\\ \\ | ||
+ | Es muss immer die gesamte Zeichenkette zu finden sein die als Feldtrenner angegeben wurde. \\ \\ \\ | ||
+ | < | ||
+ | FS=" | ||
+ | </ | ||
+ | In diesem Fall ist der Feldtrenner das Zeichen " | ||
+ | Das bedeutet: | ||
+ | |||
+ | * " | ||
+ | * " | ||
+ | * " | ||
+ | \\ \\ | ||
+ | < | ||
+ | -F " | ||
+ | </ | ||
+ | In diesem Fall ist entweder " | ||
+ | \\ | ||
+ | Das bedeutet: | ||
+ | * " | ||
+ | * " | ||
+ | * " | ||
+ | |||
+ | </ | ||
+ | |RS|Record Separator - Definiert das Trennzeichen bzw. den Regular Expression zum Trennen der Records/ | ||
+ | < | ||
+ | Eingabestring: | ||
+ | Script: awk ' | ||
+ | Ausgabe: | ||
+ | Dies ist ein Satz | ||
+ | Dies ist der nächste | ||
+ | Dies der danach | ||
+ | </ | ||
+ | In obigem Beispiel enthält $0 den aktuellen Record, da " | ||
+ | < | ||
+ | Eingabestring: | ||
+ | Script: awk ' | ||
+ | Ausgabe: | ||
+ | ist | ||
+ | ist | ||
+ | der | ||
+ | </ | ||
+ | Obiges Beispiel ließt je einen Satz ein (da ein Record jeweils durch " | ||
+ | Im Prinziep trifft alles (die definierbaren regular Expressions usw.) vom Field Seperator auch auf den Recordseperator zu. | ||
</ | </ | ||
- | |RS|Record Separator - Definiert das Trennzeichen bzw. den Regular Expression zum Trennen der Records/ | + | |OFS|Output Field Seperator - Definiert das Trennzeichen |
- | |OFS|Output Field Seperator - Definiert das Trennzeichen | + | |
|ORS|Output Record Seperator - Definiert wie Records bei der Ausgabe getrennt werden. \\ \\ Per Default durch New Line (\n). \\ \\ Bei der Ausgabe ist ein Record ein print-Statement und alles was dies ausgibt. Gibt es mehrere Ausgaben durch print, startet jedes print-Statement einen neue Zeile/ | |ORS|Output Record Seperator - Definiert wie Records bei der Ausgabe getrennt werden. \\ \\ Per Default durch New Line (\n). \\ \\ Bei der Ausgabe ist ein Record ein print-Statement und alles was dies ausgibt. Gibt es mehrere Ausgaben durch print, startet jedes print-Statement einen neue Zeile/ | ||
< | < |