AWK

Jelentkezz be a hozzászóláshoz.

Vaxi
#6
mármint ez az oprendszerek kötprog, de erõsen kötõdik hozzá 😄

Mondottam ember, küzdj és bízva bízzál, bicajozz, hogy el ne hízzál.

Vaxi
#5
Annyit tudok besegíteni, hogy bevágom a régi kötprogomat.

#!/bin/bash

# parameterek szamanak ellenorzese
if [ $# -ne 2 ] ; then
echo "Hasznalat filenev.sh SZAM KONYVTAR"
exit 1
fi

#Értékadás
MERET=$1
KONYVTAR=$2
#könyvtár létezésének ellenõrzése

if [ ! -d $KONYVTAR ] ; then
echo "Hasznalat filenev.sh SZAM KONYVTAR"
exit 1
fi

#Váltás a könyvtárra
cd $KONYVTAR


#Fileok méretének lekérése
OSSZMERET=0

#mappában levõ fileok vizsgálata
for FILE in `ls`
do
FILEAKTUALIS=$FILE
#ha az állomány mappa
if [ -d $FILEAKTUALIS ] ; then
DIRS=0
#megszámoljuk az almappák számát
for FILE in `ls $FILE` ; do
#FILEBELSO=$file
if [ -d $file ] ; then
DIRS=$(($DIRS + 1))
fi
done
#majd kiírjuk a megadott szöveget
echo "$FILEAKTUALIS/($DIRS)"

fi

#ha az állomány file
if [ -f $FILEAKTUALIS ] ; then
#lekérdezzük a file méretét
AKTUALISMERET=`cat $FILEAKTUALIS | wc -c`
#ellenõrizzük, hogy a mérete nagyob, egyenlõ-e mint a MERET
if [ $MERET -le $AKTUALISMERET ] ; then
#utolsó elõtti sorának meghatározása
SOR=`tail -2 $FILEAKTUALIS| head -1`
#kiíratás
echo "<---"
echo "$FILEAKTUALIS($AKTUALISMERET)"
echo $SOR
echo "--->"
#méret hozzáadása az összeshez
OSSZESMERET=$(($OSSZESMERET+$AKTUALISMERET))
fi
fi

done

#a megfelelt fileok méretének kiiratása
echo "Osszesen: $OSSZESMERET bajt"

Mondottam ember, küzdj és bízva bízzál, bicajozz, hogy el ne hízzál.

mumpic
#4
Én baromira szeretem ezeket a scriptelõs dolgokat, pedig valójában egyiket sem tudom használni, de mivel ott a google, így percek kérdése hogy írjak bennük valamit, ha kell.

Példa: a cég ahol dolgoztam gyakornokként, linuxos szervert használt a klímarendszerek állapotainak naplózására, ami negyed óránként mért, és egy egy textfile-ba mentett. Ebbõl kellett volna a megrendelõnek kimutatást csinálni, de bõven túllépte a 60valahány ezer sort, amit a 2003-as (asszem..) offisz még meg tudott jeleníteni. Viszont ha csak minden egész órás adatot rakunk bele, akkor negyedakkora lesz a fileméret is, és 15-20ezer körül lesznek a sorok. 😊

El sem hittem hogy nincs olyan egyszerû progi amivel meg lehet csinálni, hogy automatikusan kiveszed minden negyedik sorát egy file-nak, és átteszed egy másikba. Awk-val viszont egy sor az egész, és ráadásul kb 4 percbõl megvolt a google segítségével, bénázással együtt úgy, hogy a grep-re kerestem rá, nem is az awk-ra 😊

Amikor a perlt tanították a fõsulin, akkor mondták, hogy amit lehet, azt keressük meg a neten, és ne programozzunk feleslegesen, mert a legtöbb problémára már írtak megoldást 😄

ivjoe
#3
Több probléma is van, az egyik, hogy az awk szerintem nem programnyelv, hanem egy mintaillesztõ program, aminek van saját scriptnyelve.De ez még nem gond, csak kötözködök. 😊

Viszont az awk tipikusan unix-os stuff, talán win alatt is megy cygwin-nel vagy msys, de linuxon szoktak vele játszani, futtatható bináris állományt nem kapsz, az awk csupán végrehajtja a scriptjét.

Kis help elindulni. 😊
Pheel
#2
Az awk egy általános célú programozási nyelv, amelyet szöveges állományok földolgozására terveztek. Elnevezése a megalkotói – Alfred Aho, Peter Weinberger és Brian Kernighan – családnevének kezdõibõl született. A UNIX 3 verziójában jelent meg. Ideális szöveges állományok szûrésére, átformálására, kiértékelésére. Ma is minden unix rendszeren van legalább egy awk változat. A Free Software Foundation a gawk nevû változatot gondozza. A linux disztribúciókkal jellemzõen a gawk implementációt szállítják. Windows rendszerekhez is letölthetõ a gawk például a Cygwin részeként.
Wikipedia

Szívesen! Csak egy Googlera volt tõled is.
#1
Sziasztok!
Érdekelne az AWK nyelv. Egy feladatot kéne benne megcsinálnom. A gondom csak azzal van, hogy nem találtam eddig még egy fejlesztõkörnyezetet, amiben a programot megírhatnám. Azt nagyjából értem, hogy hogyan kéne megcsinálni meg minden, csak azt nem, hogy hova. Szal aki ért az awk nyelvhez az légyszi írjon majd valamit. Kerestem már google-ben meg mindenfélében, de nem találtam. Azokon az oldalakon amik meg awk-val foglalkoztak, mindent írtak, csak azt nem, hogy hogyan kell elkezdeni. Windows xp alatt csinálnám. Lehet ez is probléma? Meg lehet ezt valahogy oldani?