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