Temat: awk - pytanie

Hej,

Od wczoraj szukam sposobu żeby z jednego obiegu polecenia awk na 3ginfo, które kilka chwil "wypluwa" dane które chce cyklicznie zapisywać do bazy danych, tak żeby poszczególne informacje przypisać do zmiennych i dzięki temu na koniec zrobić jednego inserta do bazy. Poniższy sposób nie skutkuje. Możecie mi coś podpowiedzieć?

#!/bin/bash

model_routera=$(awk '/machine/{print $3;print $4;print $5}' /proc/cpuinfo)
echo $model_routera

tmp=`3ginfo | awk -F: '
{
        if ($1 == "Tryb pracy") {
                print $2;
                aa= $2;
                }
        else if ($1 == "Operator") {
                print $2;
                bb= $2}
}'`

echo $aa
echo $bb

2

Odp: awk - pytanie

Awk ma swoje własne zmienne, więc nie są one przekazywane do powłoki. Za pomocą przełącznika -v można utworzyć zmienne w awk na podstawie wartości zmiennych z powłoki. Trzeba wykombinować jak to zrobić w drugą stronę, może tak się da:

awk -F": '{system("export aa="$1)}'
TP-Link TL-WDR3600 v1.5 -  OpenWrt Chaos Calmer 15.05.1 with Luci +Microsoft LifeCam VX-3000
RaspberryPi 2 - OMV Stone Burner 2.0.15 +Creative SB Play +Medion OR24V +DVB-T Media-Tech MT4163  +MP00202AC +3xDS18B20 +HIH-4000-002 +MPXHZ6115A +Samsung SPF-85H +D-Link DUB-H7

3

Odp: awk - pytanie

3ginfo potrafi dawać dane do jsona, który możes sobie prosto przerobić na co chcesz. Nie koniecznie musisz do tego brać awk.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

4

Odp: awk - pytanie

Dziękuję, poradziłem sobie z json.