6
AWK
-
#6 mármint ez az oprendszerek kötprog, de erősen kötődik hozzá :D -
#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" -
#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 :D -
#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. :) -
#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. -
GKA014 #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?