awk skript: Probleme mit if und else Anweisungen

Diskutiere awk skript: Probleme mit if und else Anweisungen im Shell-Skripte Forum im Bereich Programmieren unter Linux/Unix; Hallo, ich verzweifle an einem für mich schon sehr fortgeschrittenen Programm. Ich hab komplexe Textdateien (log Dateien), den ich bestimmte...

  1. #1 h.nietnagel, 15.06.2011
    h.nietnagel

    h.nietnagel Grünschnabel

    Dabei seit:
    28.07.2010
    Beiträge:
    9
    Zustimmungen:
    0
    Hallo,

    ich verzweifle an einem für mich schon sehr fortgeschrittenen Programm. Ich hab komplexe Textdateien (log Dateien), den ich bestimmte Information entnehmen will.
    Ich poste der Einfachheit halber mal einen Ausschnitt:

    Code:
    XXX	2	Picture	a_mask	613612	160696	204	
    XXX	2	Response	1	628734	175777	2           
    XXX	2	Port Input	12	628734	175777	2           
    XXX	2	Picture	b_norm	633758	180801	2	
    XXX	2	Response	2	643824	190867	3           
    XXX	2	Port Input	15	643824	190867	3           
    XXX	2	Response	3	648905	195948	2           
    XXX	2	Port Input	16	648905	195948	2           
    XXX	2	Response	1	616735	197778	1           
    XXX	2	Port Input	12	616735	197778	1           
    XXX	2	Picture	c_mask	612829	200872	1	
    XXX	2	Response	1	666174	213217	2           
    XXX	2	Port Input	12	666174	213217	2           
    XXX	2	Response	2	672729	219772	9           
    XXX	2	Port Input	15	672729	219772	9           
    XXX	2	Picture	d_mask	673899	220942	2	
    XXX	2	Response	2	687105	234148	2           
    XXX	2	Port Input	15	687105	234148	2           
    XXX	2	Picture	e_norm	693970	241013	1	
    XXX	2	Response	2	694735	241778	1           
    XXX	2	Port Input	15	694735	241778	1           
    XXX	2	Response	1	708575	255618	2           
    XXX	2	Port Input	12	708575	255618	2           
    XXX	2	Picture	f_mask	714040	261083	2
    XXX	2	Response	1	716726	263769	17
    XXX	2	Port Input	53	716726	263769	17
    
    Das Beispiel enthält alle Kombinationen, die ich in einem .awk file abfrage. Aber irgendwie stimmt was mit den if und else Anweisungen nicht.

    Code:
    BEGIN{
    FS="\t";f=0;h=0;
    }
    {
    if($3=="Picture"){f=1;x=$4;y=$5;
    	if(f==1&&$3=="Response"&&$4==1){a=0;b=0;c=0;d=0;h++}
    	else {
    	if(f==1&&$3=="Response"&&$4!~1&&h<=1){a=$4;b=$5;c=0;d=0; h++}
    	else {
    	if (f==1&&$3=="Response"&&$4!~1&&h>=2){c=$4;d=$5; h++}
    	print x,y,a,b,c,d;f=0;h=0}
    	}
    	}
    }
    END{
    
    }
    
    Der Output soll so aussehen:
    Code:
    a_mask	613612	0 	0	0	0
    b_norm	633758	2	643824	3	648905
    c_mask	612829 	2	672729	0	0
    d_mask	673899	2	687105	0	0
    e_norm	693970	2	694735	0	0
    f_mask	714040	0	0	0	0
    

    Ich hab es mit der Schreibweise im Skript oben geschafft, wenigstens alle "Pictures" im Output zu haben, aber die anderen Bedingungen werden ignoriert. Hat jemand Ideen zur Problemlösung?

    Vielen Dank im Voraus!

    Schöne Grüße,
    Hannes
     
  2. Anzeige

    Schau dir mal diesen Ratgeber an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. #2 floyd62, 17.06.2011
    floyd62

    floyd62 Routinier

    Dabei seit:
    01.05.2007
    Beiträge:
    315
    Zustimmungen:
    0
    Der Hauptteil deines Codes läuft ja komplett innerhalb der Bedingung
    Code:
    if($3=="Picture") {
    ...
    }
    
    Damit ist die Bedingung
    Code:
    if (...$3=="Response"...) {
    
    nicht mehr zu erfüllen, und der ganze Rest wird natürlich ignoriert ...

    Gruss, A.
     
Thema:

awk skript: Probleme mit if und else Anweisungen

Die Seite wird geladen...

awk skript: Probleme mit if und else Anweisungen - Ähnliche Themen

  1. Probleme im Skript

    Probleme im Skript: Ich habe ein folgendes Problem. In home befindet sich noch 997, 998 und 999 In dem Ordner 999 befindet sich und auch im 997 de manual und...
  2. Zeichensatzprobleme - Perlskript mit cygwin unter Windows

    Zeichensatzprobleme - Perlskript mit cygwin unter Windows: Hallo, ich arbeite mit cygwin unter Windows XP und führe damit ein Perlskript aus. Das Skript liest Werte (Strings) aus einer Textdatei und...
  3. Probleme mit Skript (zum Sichern von Dateien)

    Probleme mit Skript (zum Sichern von Dateien): Hallo an alle folgendes Problem: möchte ein skript unter Linux schreiben, welches mir meine Dateien in einem Verzeichnis sichert. Der Aufruf...
  4. Sudo in Skripten

    Sudo in Skripten: Hallo, ich schreibe gerade an einem Deployment-Skript, was Dateien von einer Debian-Maschine auf einen Remote-Server (ebenfalls Debian) kopiert....
  5. HandbrakeCLI Shell Skript

    HandbrakeCLI Shell Skript: Hallo zusammen und Schöne grüße aus Süddeutschland. Ich versuche mich gerade an einem Skript für Handbrake. Ich bin ein Anfänger , und habe mir...