problem v awk

Jan Kara jack na atrey.karlin.mff.cuni.cz
Sobota Květen 8 22:58:32 CEST 1999


> Mam 2 problemy :
> 1.jak mam v tele awk testovat existenci nejakeho adresare ?
>    kdyz napisu :
>    if ((test ! -d "adresar") ==0) {
>     blabla}
>    tak mi to neslape(pise mi, ze to neexistuje nikdy)
  To je dost pochopitelne, divim se, ze na to awk nehlasi chybu. Spravne
se musi zavolat system - if (system("test ! -d adresar") == 0). Jinak
ten ! bych si v tom prikazu mozna odpustil a negaci resil v awk, ale to je
spise kosmeticka zalezitost.

> 2. v tele awk vyselektuju nejaky pole treba $3.
>     chtel bych zjistit, zda se retez, ktery je obsazen v $3
>     nachazi v nejakem jinem souboru.
>      Da se to nejak udelat primo v tele awk?
  Reseni je nekolik - volba zavisi na tom, co je konkretne potreba. Pokud
pouze zjisteni pritomnoti, nemuselo by byt spatnym resenim na to pustit
pres system() grep. Pokud s tim je ale potreba neco netrivialniho dale
delat, bude asi nutno pouzit kombinace getline(), index(), closefile()...
Konkretni implementace - viz man :-).

						Honza.



Další informace o konferenci Linux