In awk filtern
Posted: 2009-10-12 10:18
				
				Hi @all,
ich bin gerade dabei mich in awk / sed einzulesen, doch ich sollte für meinen Arbeitgeber ein altes Script ändern, da dieses dringend benötigt wird.
Und zwar geht es um folgendes: Ich habe folgdenen Codeausschnitt
Dieser generiert mir aus einer datei $PRO.acc eine Userlist. Die $PRO.acc sieht z.B. so aus:
Das argument st:B ist nun neu dazugekommen und gibt den status der Daten an. Da dies aber genau so aufgebaut ist, wie z.B. me_aktiv:horn, veikko usw. wird "B" auch mit in die Userlist übernommen. 
Jetzt meine Frage: Wie kann ich nach den werten st:A, st:B und st:P filtern, so dass diese nicht mit in die Userlist mitaufgenommen werden?!
Leider stehen die werte nich immer an letzter Stelle in der Datei.
Wie gesagt, bin ich noch awk / sed anfänger und bin gerade erst dabei das ganze zu lernen.
Wäre super wenn mir jemand helfen könnte.
Mfg
Chr.Raible
			ich bin gerade dabei mich in awk / sed einzulesen, doch ich sollte für meinen Arbeitgeber ein altes Script ändern, da dieses dringend benötigt wird.
Und zwar geht es um folgendes: Ich habe folgdenen Codeausschnitt
Code: Select all
    USERLIST=`sed -e 's/.*://' $PROACC/$PRO.acc | ${AWK} -F, '{ for (i = 1; i <= NF; i++) print $i}' | sort -u | ${AWK} '
#build array of existing accounts
BEGIN {
        cmd = "ypcat passwd | sed 's/:.*//'"
        while (( cmd | getline ) > 0) {
        accountlis[$0] = $0
        }
}
{
          if ( $1 in accountlist ){
                printf("%s,",$1)
          }
}
'`Code: Select all
pl_aktiv:horn,veikko
me_aktiv:agnes,andersso
re_aktiv:bagnuoli,bonello,buckmann,eberlein,herwig,werno
pl:franke,jung
re:graf
me:erich,farrugia,franke
st:B
Jetzt meine Frage: Wie kann ich nach den werten st:A, st:B und st:P filtern, so dass diese nicht mit in die Userlist mitaufgenommen werden?!
Leider stehen die werte nich immer an letzter Stelle in der Datei.
Wie gesagt, bin ich noch awk / sed anfänger und bin gerade erst dabei das ganze zu lernen.
Wäre super wenn mir jemand helfen könnte.
Mfg
Chr.Raible