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 - [email protected]
http://mlf2.linux.rulez.org/mailman/listinfo/linux