Předání bash proměnné do awk

Milan

Předání bash proměnné do awk
« kdy: 29. 10. 2012, 20:29:26 »
Dobry vecer,
   omlouvam se za stupidni dotaz, ale ze skoly uz jsem nejaky ten patek a nevim si rady s jednim bash scriptem a prosim o pomoc.

O co jde - mam ve scriptu tento radek na spusteni awk a zpracovani nejakeho retezce ze string promenne:

Kód: [Vybrat]
AWK_RESULT=`awk 'strtonum($2)>=95.0 {print}' <<<"$DATA"`
Vse funguje jak ma.
Ale potrebuji nahradit konstantu 95.0 hodnotou z promenne $LIMIT, a ne a ne se zadarit. Zkousel jsem:

Kód: [Vybrat]
  AWK_RESULT=`awk 'strtonum($2)>=$LIMIT {print}' <<<"$DATA"`
  AWK_RESULT=`awk 'strtonum($2)>=${LIMIT} {print}' <<<"$DATA"`
  AWK_RESULT=`awk 'strtonum($2)>="$LIMIT" {print}' <<<"$DATA"`
  AWK_RESULT=`awk "'strtonum(\$2)>=${LIMIT} {print}'" <<<"$DATA"`

A ne a ne na to prijit - je tam urcite nekde problem s uzavorkovanim a apostrofy, ale uz nevim co s tim.
« Poslední změna: 29. 10. 2012, 20:40:06 od Petr Krčmář »


poiu

Re:Pomoc s bash scriptem (novacek)
« Odpověď #1 kdy: 29. 10. 2012, 20:40:15 »
Dobry vecer,
   omlouvam se za stupidni dotaz, ale ze skoly uz jsem nejaky ten patek a nevim si rady s jednim bash scriptem a prosim o pomoc.

O co jde - mam ve scriptu tento radek na spusteni awk a zpracovani nejakeho retezce ze string promenne:
AWK_RESULT=`awk 'strtonum($2)>=95.0 {print}' <<<"$DATA"`

Vse funguje jak ma.
Ale potrebuji nahradit konstantu 95.0 hodnotou z promenne $LIMIT, a ne a ne se zadarit. Zkousel jsem:
  AWK_RESULT=`awk 'strtonum($2)>=$LIMIT {print}' <<<"$DATA"`
  AWK_RESULT=`awk 'strtonum($2)>=${LIMIT} {print}' <<<"$DATA"`
  AWK_RESULT=`awk 'strtonum($2)>="$LIMIT" {print}' <<<"$DATA"`
  AWK_RESULT=`awk "'strtonum(\$2)>=${LIMIT} {print}'" <<<"$DATA"`

A ne a ne na to prijit - je tam urcite nekde problem s uzavorkovanim a apostrofy, ale uz nevim co s tim.
  AWK_RESULT=`awk 'strtonum($2)>='"$LIMIT"' {print}' <<<"$DATA"`
alebo
  AWK_RESULT=`awk 'strtonum($2)>=ENVIRON["LIMIT"] {print}' <<<"$DATA"`
alebo
  AWK_RESULT=`awk -v limit="$LIMIT" 'strtonum($2)>=limit {print}' <<<"$DATA"`

Milan

Re:Pomoc s bash scriptem (novacek)
« Odpověď #2 kdy: 29. 10. 2012, 20:46:37 »
  AWK_RESULT=`awk 'strtonum($2)>='"$LIMIT"' {print}' <<<"$DATA"`

Tak prvni varianta byla ta spravna. Netusil jsem ze si muzu dovolit jakoby ukoncit tu prikazovou cast awk a zase na ni navazat.
   Dekuji moc.