Portál AbcLinuxu, 16. května 2025 02:41

Dotaz: Problém s awk

21.8.2012 16:18 Mart
Problém s awk
Přečteno: 206×
Odpovědět | Admin
Zdravím, proč tento zápis funguje jak má,
awk 'BEGIN{x=77997
.
..
.
}'
a tento pomocí proměnné ne?
NMB=77997
awk 'BEGIN{x=$NMB
.
..
.
}'
Díky

Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

21.8.2012 16:26 rich
Rozbalit Rozbalit vše Re: Problém s awk
Odpovědět | | Sbalit | Link | Blokovat | Admin
protoze v awk se volaji pres pole ENVIRON

NMB=77997 awk 'BEGIN{x=ENVIRON["NMB"] . .. . }'

21.8.2012 16:35 Mart
Rozbalit Rozbalit vše Re: Problém s awk
Díky, ale nějaký jiný nápad?

fatal: division by zero attempted
22.8.2012 13:21 rich
Rozbalit Rozbalit vše Re: Problém s awk
jj, chyběl tam ten export
Řešení 1× (frEon)
21.8.2012 17:35 Ondřej Kubečka | skóre: 29 | blog: datlovo | Ulm
Rozbalit Rozbalit vše Re: Problém s awk
Odpovědět | | Sbalit | Link | Blokovat | Admin
Protoze kdyz to takhle napisete v shellu, tak '' znamena, ze se vam nebudou expandovat promenne a awk uvidi doslova $NMB (a ne 77997). Tzn. polozku v zaznamu na policku odpovidajici poradi ulozenem v promenne NMB. Ta zde pak neni definovana, takze podle implementace awku dostanente bud cely radek ($0; gawk) nebo selhani skriptu (nawk).

Teoreticky muzete pouzit "", ale zrejme si tim dost zneprehlednite skript (nutnost escapovat), takze bud jak psal kolega, nebo si promennou muzete do awku poslat pomoci volby -v.
http://prirucka.ujc.cas.cz/?ref=785&id=790.
21.8.2012 17:44 Mart
Rozbalit Rozbalit vše Re: Problém s awk
A co takhle?
export NMB=77997
awk 'BEGIN{x=ENVIRON["NMB"]
.
..
.
}'
22.8.2012 09:32 pletiplot | skóre: 14
Rozbalit Rozbalit vše Re: Problém s awk
Odpovědět | | Sbalit | Link | Blokovat | Admin
Protože v awk nelze takto číst shellovské proměnně.

Obvykle to řeším takto: NMB=77997 awk -v x="$NMB" 'BEGIN{...}'
22.8.2012 09:33 pletiplot | skóre: 14
Rozbalit Rozbalit vše Re: Problém s awk
Tedy chtěl jsem napsat: NMB=77997 awk -v x="$NMB" 'BEGIN{...}'

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.