Geändert von Romanday (20-02-2007 um 09:08 Uhr)
Abriss, bzw. die Sprengung des World Trade Centers
WDR Dokumentation
Doku + DT Untertitel
Weitere Infos - Terrorstorm
Hallo Romanday,
danke für dein Angebot . PHP halte ich nicht für so geeignet, da das Prog auch auf einem normalen Windows-Rechner laufen soll. Ich weiß auch nicht, ob PHP mit großen Textdateien so gut klar kommt wie AWK (30 Mbyte und größer).
Deshalb nochmal zu AWK. Ich denke, ich hätte einen Ansatz, wenn ich den Inhalt der jeweils nächsten Zeile abfragen könnte. Das hab ich aber bislang nicht hinbekommen. Also zB die Schleife
if($0 == "irgendwas") oder if($0 ~ "irgendwas")
wurde für jede Zeile ausgeführt, weil der Ausdruck $0 == "irgendwas" wohl immer wahr ist. Das kapier ich nicht so ganz. Weiß jemand, wie ich eine funktionierende Schleife der Art bauen könnte für das Beispiel oben? Also eine korrigierte Version von dieser:
if($0 ~ "Obst")
Danke,
sileem
Geändert von hand44 (19-02-2007 um 08:20 Uhr)
Moin moin,
wenn ich das richtig sehe, dann ist z.B. bei der ersten Zeile Deiner Liste
$0 "Gruppe: Obst"
$1 "Gruppe:"
$2 "Obst"
frag also lieber if($1=="Gruppe:") und dann, ob Du $2 schonmal hattest;-)
Ist eigentlich gewährleistet, daß die Liste zmindest den Gruppen nach sortiert ist?
MfG,
Rainer
There's nothing a good whack with a hammer won't fix!
Moin!
Durch den letzten Tipp und durch Ausprobieren bin ich jetzt noch einen Schritt weiter gekommen: Der Code:
BEGIN {
obst=1;
gemu=1;
sprit=1;
}
{
if($1=="Gruppe:")
{
if(obst==1 && $2=="Obst")
print "Obstsorten";
}
{
if(obst==1 && $2=="Obst")
obst=0;
}
{
if(gemu==1 && $2=="Gemuese")
print "\nGemuesesorten";
}
{
if(gemu==1 && $2=="Gemuese")
gemu=0;
}
}
sub("Name: ","");
bringt folgende Ausgabe:
Obstsorten
Apfel
Birne
Kirsche
Gemuesesorten
Karotte
Kohlrabi
Tomate
Jetzt fehlt mir noch die Anzahl der Obst- und Gemüsesorten an der jeweiligen Stelle. Geht das überhaupt?
Geändert von hand44 (19-02-2007 um 13:22 Uhr)
So. Ich hab's jetzt fast komplett selbst hinbekommen :-). Ich hab nur noch eine letzte kleine Frage. Ich habe eine Eingabe nach der Art:
Name: 111 222 333 444 555
Und möchte per print nur ausgeben:
111 222 333 444 555
So hab ich's gemacht:
{
if($1==Name)
print $3,$4,$5,$6,$7
}
Das Problem ist, dass wenn ich eine Zeile habe wie zB
Name: 111 222
sieht die Ausgabe zwar auch brauchbar aus, aber für die überflüssigen Felder wird dann je ein Leerzeichen angehangen.
Meine Frage lautet also: Ist es direkt möglich, einfach alles rechts ab $3 auszugeben? Egal, wieviele Felder da stehen?
Gruß und Danke,
Sileem
Siehe man tr und wc
mfg undefined
--
Undefined Behavior (undefiniertes Verhalten) bedeutet meistens etwas ungültiges.
xhtml Debugger
Äh... Uff!
Trotzdem Danke.
Lesezeichen