Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
awk [2017/10/17 23:06] 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 145: | Zeile 145: | ||
</ | </ | ||
In diesem Fall ist der Feldtrenner das Zeichen " | In diesem Fall ist der Feldtrenner das Zeichen " | ||
- | \\ \\ | + | \\ \\ \\ |
< | < | ||
FS=" | FS=" | ||
Zeile 160: | Zeile 160: | ||
</ | </ | ||
würden nicht zerlegt werden.\\ \\ | würden nicht zerlegt werden.\\ \\ | ||
- | Es muss immer die gesamte Zeichenkette zu finden sein die als Feldtrenner angegeben wurde. \\ \\ | + | 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/ | ||
< | < |