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