Bizonyára egyszerű, amit akarok, de eddig nem kellett ilyesmit csinálnom.

Szóval van egy szűrő shell script, amit írok. Kap std inputon egy fájlt, ez 
több soros text.
A következő lenne a feladat: minden sorban megnézem, hogy valami kulcsszó 
van-e benne, és ha igen, akkor a hozzá tartozó értéket eltárolom.

Most így megy:
cat >tempfile </dev/stdin
ertek1=`grep kulcsszo1 tempfile | cut -f 2 -d :`
ertek2=`grep kulcsszo2 tempfile | cut -f 2 -d :`

Ezzel ket bajom van: egyfelol feleslegesnek tartom a tempfile letrehozasat, 
masfelol feleslegesnek tartom, hogy minden grep vegignyalazza az osszes 
sort (egy kulcsszo csak egyszer fog szerepelni).

Valami olyasmire gondoltam, hogy read paranccsal soronkent olvasom be a 
fajlt, es aztan egyenkent nezem.

Szoval valami ilyesmi:
while read sor do
    kulcs=awk '{print $1;}'
    case kulcs
       kulcsszo1:
           ertek1=awk'{print $2;}'
           ;;
        kulcsszo2:
           ...
        ...
   esac
done

Mar tul keso van, most nem allok neki, de ez jo megkozelites? Vagy lehet 
valahogy egyszerubben csinalni?
Mivel ilyesmi egy sor:
egy ketto:harom
negy:ot hat

Ahol a : elotti resz a kulcs, a mogotte kovetkezo az ertek, ezert ezt 
emlekeim szerint awk-val konnyen fel tudom dolgozni. Tehat a grep igazan 
nem szukseges.

G
_________________________________________________
linux lista      -      linux@mlf.linux.rulez.org
http://mlf2.linux.rulez.org/mailman/listinfo/linux

válasz