awk ed

Ein Textverarbeitungsprogramm ähnlich sed.

Generell ed

Programmaufruf ed

awk 'befehle' zu_bearbeitende_dateien

oder

awk -f befehls_datei zu_bearbeitende_dateien

oder

befehl | awk 'befehle'

Arbeitsweise ed

Awk-Scripte haben die Form:

awk 'muster1 {befehl1} muster2 {befehl2} ...' dateien

Hierbei werden Eingabe-Dateien zeilenweise mit den Mustern verglichen und bei Erfolg der nachfolgende Befehl ausgeführt.

Muster

Jede Zeile der Eingabe-Datei wird in Worte/Spalten unterteilt. Die einzelnen Worte der Zeile sind über Variablen \(1, \)2,... ansprechbar, die gesamte Zeile als \(0\lt /tt\gt . Die Trennung zwischen Worten/Spalten geschieht durch Leerzeichen oder Tab. == Befehle == Es können mehrere Befehle nacheinander ausgeführt werden: {befehl1; befehl2; ...} Kommentare beginnen mit Raute # Kommentar === Ausgabe === \lt tt\gt print\lt /tt\gt gibt Strings und Variablen aus (stdout). Werden mehrere Ausgaben durch Komma getrennt angegeben, werden sie bei der Ausgabe durch Leerzeichen getrennt. Ohne Komma werden sie direkt aneinandergehängt. print `hallo` `michi` -\gt `hallomichi` print `hallo`, `michi` -\gt `hallo michi` print \)1 -> erstes Wort der Zeile

Formatierte Ausgabe wie in C mit printf:

printf "%.2d - %s", $1, $2

Umleitung der Ausgabe:

print... > "Dateiname"
print... >> "Dateiname"
print... | "Befehl"

Bedingungen ed

wie in C

if (i < 4) befehl

mehrere Befehle:

if (i < 4) {befehl1; befehl2}

Schleifen ed

while

while (i < 6) befehl

for (wie in C)

for (i = 0; i < 4; i ++) befehl

for (2)

for (_index_ in _array_) befehl

(Schleife über Array-Indizes, nicht den Inhalt!)

besondere Befehle

sonstige ed

Variablen ed

grundsätzlich ed

Variablen werden ohne Typ und ohne Deklaration verwendet. Sie sind Strings, können aber auch als Ganz- oder Fließkommazahlen verwendet werden.

{i = i + 1} END {print i}

Der Anfangswert ist immer ein leerer String (= 0 als Zahlen).

Arrays

a[4] = "test"
a["ui"] = "ij"           "assoziativer" Array

spezielle Variabel ed

Funktionen ed

vordefinierte ed

eigene ed

Categories: Computer, Programmieren