Notice: Undefined index: string in /var/www/stefan/howtux.de/htdocs/article.php on line 49

Notice: Undefined index: settings in /var/www/stefan/howtux.de/htdocs/article.php on line 61
Home / awk / Interpretervariablen in awk

Interpretervariablen in awk

Kategorie: awkErstellt: 02.10.2007 - 23:58 
Autor: Stefan Abu Salah
0

Interpretervariablen in awk

Neben den frei definierbaren Variablen gibt es unter awk die sogenannten Interpretervariablen. Dies Built-In Variablen haben vordefinierte Namen und werden generell groß Geschrieben. Man kann auf diesen Variablen genauso arbeiten, wie mit eigens definierten Variablen. Je nach Variable sind in ihr zum Programmstart bereits sinnvolle Informationen gespeichert. Die folgende Tabelle zeigt einen Ausschnitt aus dem Repertoire von awk:

Einige wichtige Interpretervariablen in awk

$0 Gesamter Inhalt der übergebenen Zeile
$n Einzelne Spalten der Übergebenen Zeile (n ist eine Zahl größer als eins)
ARGC Anzahl der übergebenen Parameter
ARGV Array mit übergebenen Argumenten
CONVFMT Konvertierungsformat für Zahlenwerte. Standartmäßig ist die Variable auf den Wert %.6g festgelegt. Dies bedeutet, dass Fließkommazahlen mit sechs Nachkommastellen dargestellt werden (%.12g würde zwölf Nachkommastellen darstellen).
ENVIRON Array mit den Umgebungsvariablen der Shell. Z.B. ENVIRON["TERM"] beinhaltet den Wert für das Terminal.
FILENAME Name der Datei, die gerade als Input dient.
FNR Anzahl der bereits verarbeiteten Eingabezeilen für die aktuelle Eingabedatei.
FS Fieldseperator dient dem Festlegen des Trennzeichens für Spalten einer Zeile. Normalerweise wird dies mit dem Parameter -F gesetzt. Wenn dies zur Laufzeit geändert werden muss, kann man dies mit dem setzen dieser Variablen tun.
NF Anzahl der Spalten der aktuellen Eingabezeile.
NR Anzahl der bereits verarbeiteten Eingabezeilen insgesamt.

Besonders häufig werden die Interpretervariablen $1 bis $n genutzt. Sie adressieren direkt die Spalten der Übergebenen Zeile.

Beispiel: Und noch mehr Schausteller

stefan@troubadix/home/stefan$ cat schausteller
Ahrend Erwin 31582 Nienburg 017232646216
Albrecht Willi 64560 Riedstadt 0616872010
Alisch Alfred 32257 Bünde 01726720725
Button LoMagic 47228 Duisburg 0206450452
Bügler David 59063 Hamm 01725454570
Bügler Wolfgang 52372 Kreuzau 01715454590
Bügler Willi 52372 Kreuzau 01705454533
...

# mein_filter.awk
{
print $1 $2;
}

stefan@troubadix/home/stefan$ awk -f mein_filter.awk schausteller
Ahrend Erwin
Albrecht Willi
Alisch Alfred
Button LoMagic
Bügler David
Bügler Wolfgang
...

# Aber es geht auch direkt in der Shell ohne den Umweg über ein Skript:

stefan@troubadix/home/stefan$ awk '{print $1 " " $2}' schausteller
Ahrend Erwin
Albrecht Willi
Alisch Alfred
Button LoMagic
Bügler David
Bügler Wolfgang
...

Wenn Sie awk-Programme direkt inerhalb eines Shellbefehls verwenden wollen müssen die awk-Anweisungsblöcke in einfachen Hochkommata (') stehen.



Notice: Undefined variable: urli in /var/www/stefan/howtux.de/htdocs/classes.php on line 240
Bookmark auf del.icio.usBookmark auf Mister WongBookmark auf BlinklistBookmark auf GoogleBookmark auf LinkarenaBookmark auf YiggBookmark auf FolkdBookmark auf Yahoo
Home / awk / Interpretervariablen in awk
simplum