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/ | ||
| < | < | ||