Unix / Linux Shellscript-Kurzreferenz - Awk
| awk | Der "awk" ist derart leistungsfähig, daß man ihn schon als eine kleine Programmiersprache bezeichnen kann. Intern kann man ihn in drei Segmente unterteilen: BEGIN{}, {} und END{}. Nur das mittlere bearbeitet die Datei oder den Datenstrom Zeile für Zeile. Der Funktionsumfang des "awk" füllt leicht ein ganzes Kapitel. Sehr nützlich zum Extrahieren von Datenfeldern in strukturierten Listen:
# Nimm das letzte Feld ($NF) aus der durch das
# Trennzeichen "/" definierten Liste (-F/). Gebe aus dem
# vollständigen Pfad nur den Dateinamen netdate aus
echo "/usr/sbin/netdate" | awk -F/ '{print $NF}'
# Man kann damit auch Mail-Aliases automatisch erzeugen
# Ignoriere alle UID's kleiner als 500
awk -F: '\
{
if($5~" "&&$3>499)
{
gsub(" ",".",$5);
print $5": "$1
}
}' /etc/passwd > /etc/aliases
newaliases
Variablen (Auswahl):
Var Descr Default
-----------------------------------------
FS Feldseparator " "
NF Anzahl Felder
NR Nr des aktuellen Datensatz
OFMT Ausgabeformat
OFS Ausgabe Feldseparator " "
ORS Ausgabe Datensatzseparator \n
RS Datensatzseparator
Funktionen (Auswahl):
Ret Function Descr
---------------------------------------------------------------
break, exit Schleifenabbruch
continue, next Neuer Schleifendurchlauf
int gsub("search","replace",var) Suchen / Ersetzen
int length(String) Stringlaenge
int match(haystack,needle) Suchen
int split(String,Array,string sep) Splitten
string strftime(Format, Unix-TS) Zeitausgabe (date)
string substr(String,pos,count) Teilstring
int systime() Unix-Timestamp (TS)
string tolower Kleinbuchstaben
string toupper Grossbuchstaben
|
Letzte Änderung: 2019-02-17
| © 2003-2024 Hohmann-EDV | Stand: 2015-05-21 | Default Browser 0.0 / unknown | Programmierung: Hohmann-EDV |