Wie spreche ich also über AWK die html tabelle so an, dass ich die Textdaten Zeile 1 in die Tabellenzeile 1 bekomme, und die Textdaten Zeile 3 in die Tabellenzeile 2?
Erkenntnis:
Du willst in AWK eine CSV-Datei auswerten und dabei die Reihenfolge der ausgegebenen Zeilen verändern.
Frage:
Ist dieser Wunsch rein willkürlich oder folgt dieser einem Schema - soll zum Beispiel die Ausgabe sortiert erfolgen? Dann würde ich nämlich ganz anders vorgehen:
nl - Nummeriert Zeilen des Inputs
sort - sortiert
grep - filtert Zeilen
cut - schneidet Spalten aus und baut neu zusammen
sind hier Deine mächtigen und sehr schnellen Freunde.
Ein Hinweis:
<td bgcolor=#00FFFF>Der Wert aus zeile 3 lautet</td>"`
Du zeigst uns HTML aus dem vorigen Jahrtausend. Das ist inzwischen verpönt.
Noch ein Hinweis:
Das mit dem AWK zu HTML-Tabellen verwende ich zwar als Beispiel für die Nutzung des AWK - aber im realen Leben ist diese Idee eher „dritte Wahl“… Klüger ist es eine andere Programmiersprache zu verwenden - für diese Sache wären PHP ein Kandidat.
Zur Sache:
cat Beispiel.txt | awk ' NR == 1,NR==2 {print $0} ' | awk 'BEGIN{ …
(das funktioniert eh nicht!)
Du kannst den awk-Skript-Teil in einer eigenen Datei unterbringen, e.g, skript.awk
.
Dann startest Du die Abarbeitung ganz einfach mit
awk -F ' ' -f skript.awk < Beispiel.txt
Allgmein zum AWK:
Der AWK unterscheidet 3 Abschnitte:
BEGIN {
# Was hier steht wird ausgeführt, bevor der AWK die erste Zeile der Daten abarbeitet.
}
{
# Was hier steht wird für jede Zeile der Datendatei ausgeführt.
}
END {
# Was hier steht wird ausgeführt, nachdem der AWK alle Zeilen der Datendatei abgearbeitet hat.
}
RTFM
man 1 awk
hilft Dir weiter, da stehen sogar Beispiele drin. Auch die oben genannten Befehle haben ein Manual:
man 1 befehl
oder die Kurzhilfe mit befehl --help
helfen Dir weiter.