gabaman

Hozzászólások

10 bejegyzés megtekintése - 581-590 / 2,173
  • Szerző
    Bejegyzés
  • Hozzászólás: Fejtörő – „csak guruknak”… #2104358
    gabaman
    Felhasználó

      Volt szabad 5 percem, úgyhoy összedobtam egy kis bash scriptet.  ;D  Lassan már 3 hete dobta fel a témát Vizsla, de mindenki csak kóstolgatja a bash változatot, most itt egy komplex implementáció:

      halmaz.sh

      Code:
      #!/bin/sh

      TMP1=”temp.1.txt”
      TMP2=”temp.2.txt”
      BEVITEL=1
      KEZDO=1
      ELVALASZTO=”.”

      function rendezes {
              if ! [ -f $1 ]
              then
                      echo „A(z) $1 fájl nem létezik!”
                      exit 2
              fi
              cat $1 | sort -u >$2
      }

      function rendezes_karakterlanc {
              if ! [ -f $1 ]
              then
                      echo „A(z) $1 fájl nem létezik!”
                      exit 2
              fi
              cat $1 |
                      sed -e ‘s/”([^”]*)”[ t]*/1n/g’ |
                      grep ‘[^n]’ |
                      sort -u >$2
      }

      function numerikus_rendezes {
              O1=$KEZDO
              O2=`expr $O1 + 1`
              O3=`expr $O1 + 2`
              if ! [ -f $1 ]
              then
                      echo „A(z) $1 fájl nem létezik!”
                      exit 2
              fi
              cat $1 | sort -u -t $ELVALASZTO -k ${O1},${O1}n -k ${O2},${O2}n -k ${O3},${O3}n >$2
      }

      function numerikus_rendezes_karakterlanc {
              O1=$KEZDO
              O2=`expr $O1 + 1`
              O3=`expr $O1 + 2`
              if ! [ -f $1 ]
              then
                      echo „A(z) $1 fájl nem létezik!”
                      exit 2
              fi
              cat $1 |
                      sed -e ‘s/”([^”]*)”[ t]*/1n/g’ | grep ‘[^n]’ |
                      sort -u -t ‘$ELVALASZTO’ -k ${O1},${O1}n -k ${O2},${O2}n -k ${O3},${O3}n >$2
      }

      function kivon {
              $RENDEZES $1 $TMP1
              $RENDEZES $2 $TMP2
              diff -u $TMP1 $TMP2 |
                      grep -v „^—” |
                      grep „^-„|
                      cut -b 2- |
                      sort -u >$3
              rm -f $TMP1 $TMP2
      }

      function unio {
              if test „$LANC” = „”
              then
                      cat $1 $2 >$TMP1
              else
                      cat $1 $2 | tr ‘n’ ‘ ‘>$TMP1
              fi
              $RENDEZES $TMP1 $3
              rm -f $TMP1
      }

      function metszet {
              $RENDEZES $1 $TMP1
              $RENDEZES $2 $TMP2
              diff -u $TMP1 $TMP2 |
                      grep „^ ” |
                      cut -b 2- |
                      sort -u >$3
              rm -f $TMP1 $TMP2
      }

      function segitseg {
              echo „Használat: $0 [opciók] — ”
              echo „”
              echo ”  Műveletek:”
              echo ”    –kivon”
              echo ”    –unio”
              echo ”    –metszet”
              echo „”
              echo ”  Opciók:”
              echo ”    -l  Karakterlánc bemenet”
              echo ”    -n  Numerikus bemenet”
              echo ”    -t  Elválasztó (csak numerikus bemenetnél)”
              echo ”    -k  Kezdő oszlop (csak numerikus bemenetnél)”
              echo ”    -v  Bőbeszédű kimenet”
              echo „”
              echo ”  Példa: $0 A–kivon B C”
              echo „”
              exit 1
      }

      if test $# -le 4
      then
              segitseg
      fi

      for i in $*
      do
              if test „$PARANCS” = „elvalaszto”
              then
                      ELVALASZTO=”$i”
              elif test „$PARANCS” = „kezdo”
              then
                      KEZDO=”$i”
              else
                      case $i in
                              -l) LANC=_karakterlanc ;;
                              -n) NRENDEZ=numerikus_ ;;
                              -t) if test „$NRENDEZ” = „”
                                  then
                                          echo „Csak numerikus bemenetet lehet elválasztani!”
                                          exit 3
                                  else
                                          PARANCS=elvalaszto
                                  fi ;;
                              -k) if test „$NRENDEZ” = „”
                                  then
                                          echo „Csak numerikus bemenetnél lehet kezdő kulcsot megadni!”
                                          exit 3
                                  else
                                          PARANCS=kezdo
                                  fi ;;
                              –kivon) MUVELET=kivon
                                      if test „$BEVITEL” != 2
                                      then
                                          segitseg
                                      fi ;;
                              –unio) MUVELET=unio
                                      if test „$BEVITEL” != 2
                                      then
                                          segitseg
                                      fi ;;
                              –metszet) MUVELET=metszet
                                      if test „$BEVITEL” != 2
                                      then
                                          segitseg
                                      fi ;;
                              -v) NYOMTAT=1 ;;
                              -h) segitseg ;;
                              –help) segitseg ;;
                              -?) segitseg ;;
                              *) if test „$PARANCS” != „”
                                then
                                          segitseg
                                else
                                          case $BEVITEL in
                                                  1) FORRAS1=$i
                                                    BEVITEL=2 ;;
                                                  2) FORRAS2=$i
                                                    BEVITEL=3 ;;
                                                  3) KIMENET=$i
                                                    BEVITEL=4 ;;
                                                  *) segitseg ;;
                                          esac
                                fi;;
                      esac

              fi
      done

      RENDEZES=${NRENDEZ}rendezes${LANC}
      $MUVELET $FORRAS1 $FORRAS2 $KIMENET

      if test „$LANC” != „”
      then
              mv $KIMENET $TMP1
              cat $TMP1 |
                      sed -e ‘s/([^n]*)/”1″/g’ |
                      tr ‘n’ ‘ ‘ >$KIMENET
              echo „” >>$KIMENET
              rm -f $TMP1
      fi

      if test „$NYOMTAT” = „1”
      then
              echo „”
              echo „Művelet: $MUVELET”
              echo „”
              echo „Forrás 1 (A):”
              echo „————-”
              cat $FORRAS1
              echo „”
              echo „Forrás 2 (B):”
              echo „————-”
              cat $FORRAS2
              echo „”
              echo „Eredmény (C):”
              echo „————-”
              cat $KIMENET
              echo „”
      fi

      Nincs különösebben tesztelve, tényleg csak gyorsan összedobtam. Viszont szándékosan kihagytam a leírást (megjegyzéseket), hogy pontosan mi mit csinál. Akit érdekel, jó kis móka kibogozni.

      Az általam tesztelt eredmények:

      Code:
      $ ./halmaz.sh -v A1 –metszet B1 C

      Művelet: metszet

      Forrás 1 (A):
      ————-
      1.1.3.fc6
      1.1.5.fc6
      1.2.3.fc6
      2.1.4.fc6
      1.10.5.fc6

      Forrás 2 (B):
      ————-
      1.1.3.fc6
      1.1.5.fc6
      1.2.3.fc6
      2.1.7.fc6

      Eredmény (C):
      ————-
      1.1.3.fc6
      1.1.5.fc6
      1.2.3.fc6

      és

      Code:
      $ ./halmaz.sh -l -v A –metszet B C

      Művelet: metszet

      Forrás 1 (A):
      ————-
      „1.1.3.fc6” „1.1.5.fc6” „1.2.3.fc6” „2.1.4.fc6” „1.10.5.fc6”

      Forrás 2 (B):
      ————-
      „1.1.3.fc6” „1.1.5.fc6” „1.2.3.fc6” „2.1.7.fc6”

      Eredmény (C):
      ————-
      „1.1.3.fc6” „1.1.5.fc6” „1.2.3.fc6”

      Hozzászólás: Fejtörő – „csak guruknak”… #2104349
      gabaman
      Felhasználó
        NagyEsta wrote:
        A sort -n nekem nem működik, mert ez lesz a kimenete:

        Code:
        [root@NagyEsta ~]# ls | grep ^ize | cut -f 2 -d „-” | sort -n
        1.1.3.fc6
        1.1.5.fc6
        1.2.3.fc6
        2.1.4.fc6
        1.10.5.fc6

        Igaz, a sort alapból nem tud több oszlopot rendezni. De a következő már jó:

        Code:
        $ cat list
        „1.1.3.fc6” „1.1.5.fc6” „1.2.3.fc6” „2.1.4.fc6” „1.10.5.fc6″
        $ cat list|sed -e ‘s/”([^”]*)”[ t]*/1n/g’|grep ‘[^n]’|sort -t ‘.’ -k 1,1n -k 2,2n -k 3,3n
        1.1.3.fc6
        1.1.5.fc6
        1.2.3.fc6
        1.10.5.fc6
        2.1.4.fc6

        Bár így meg a rendező kulcsnak az első pozícióban kell lennie, tehát nem használható fel általános rendezéshez.

        Hozzászólás: Fejtörő – „csak guruknak”… #2104350
        gabaman
        Felhasználó
          NagyEsta wrote:
          A sort -n nekem nem működik, mert ez lesz a kimenete:

          Code:
          [root@NagyEsta ~]# ls | grep ^ize | cut -f 2 -d „-” | sort -n
          1.1.3.fc6
          1.1.5.fc6
          1.2.3.fc6
          2.1.4.fc6
          1.10.5.fc6

          Igaz, a sort alapból nem tud több oszlopot rendezni. De a következő már jó:

          Code:
          $ cat list
          „1.1.3.fc6” „1.1.5.fc6” „1.2.3.fc6” „2.1.4.fc6” „1.10.5.fc6″
          $ cat list|sed -e ‘s/”([^”]*)”[ t]*/1n/g’|grep ‘[^n]’|sort -t ‘.’ -k 1,1n -k 2,2n -k 3,3n
          1.1.3.fc6
          1.1.5.fc6
          1.2.3.fc6
          1.10.5.fc6
          2.1.4.fc6

          Bár így meg a rendező kulcsnak az első pozícióban kell lennie, tehát nem használható fel általános rendezéshez.

          Hozzászólás: Fejtörő – „csak guruknak”… #2104345
          gabaman
          Felhasználó
            NagyEsta wrote:
            Aham. Értem már a problémát, és így esélytelen a dolog. A sort -n sem megfelelő….
            Bocs a bénázásért. Lehet írok egy sortver progit, ami rendezi a kapott verziószámokat  😀

            Nem értelek. Írtál egy majdnem jó megoldást, majd a jó megoldásra hivatkozva feladod. Nézd csak meg, az „-n” kapcsolót korábban nem írtad, pedig működik.

            Hozzászólás: Fejtörő – „csak guruknak”… #2104346
            gabaman
            Felhasználó
              NagyEsta wrote:
              Aham. Értem már a problémát, és így esélytelen a dolog. A sort -n sem megfelelő….
              Bocs a bénázásért. Lehet írok egy sortver progit, ami rendezi a kapott verziószámokat  😀

              Nem értelek. Írtál egy majdnem jó megoldást, majd a jó megoldásra hivatkozva feladod. Nézd csak meg, az „-n” kapcsolót korábban nem írtad, pedig működik.

              Hozzászólás: gcc programozás #2014474
              gabaman
              Felhasználó
                kisbetu wrote:
                gabaman wrote:
                az a kérdés, hogy „a gcc le tud-e fordíani C++ kódot?”

                Ez a kérdés nem merült fel.

                Ha már a hejesirásomban nem tucc belekötekedni, kullön köcönöm h egy a témábenn kompetens oktat ki. Értam a célzást, más takarodom is.

                Hozzászólás: gcc programozás #2014472
                gabaman
                Felhasználó

                  Azt hiszem, kevertek pár dolgot, ugyanis az a kérdés, hogy „a gcc le tud-e fordíani C++ kódot?”, egyszerre igaz és hamis. Valójában a gcc név két fogalmat takar: az egyig egy nagy tudású és több programnyelvet támogató szoftvercsomag neve (gcc: GNU Compiler Collection), a másik ennek egy komponensét, ami egy futtatható állomány és C nyelű programokat fordít (gcc: GNU C Compiler).

                  http://gcc.gnu.org/

                  Hozzászólás: kernel fordítás FC5 esetén #2069030
                  gabaman
                  Felhasználó

                    Sajnos a Linux gyûlölõk propagandája, hogy mindenhez új kernelt kell fordítani. Dehogy van ez így! Mint minden rendes disztribben, a Fedora 5-ben is folyamatosan frissítik a kernelt (desktop szegmens!), így csak a frissítéseket kell(ene) feltenni. Tehát:

                    # yum update
                    vagy
                    Alkalmazások -> Rendszereszközök -> Software Updater

                    Mellesleg a frissítéseknél a 2.6.17-1.2157_FC5 verzió a legújabb, így szélesebb a wlan támogatás, mint a 2.6.15-nél volt.

                    Hozzászólás: Fedora5 alatt fwbuilder #2068076
                    gabaman
                    Felhasználó

                      Nekem van egy tippem. A Fedorában található egy használható tûzfal, talán az blokkolja az fwbuildert. Kapcsold ki, különben összeakadhatnak. De ez esetben magadnak kell gondoskodni egy biztonságilag megfelelõ védelemrõl.

                      Hozzászólás: moderatori idiotizmus a linuxforum.hu -n #2067806
                      gabaman
                      Felhasználó
                        dexter11 wrote:
                        Vagyok annyira optimista, hogy azt higgyem ha elkészült volna a dolog akkor a tartalommal való feltöltése megoldódott volna.

                        Pedig elkészült. 🙁 Legalábbis szerkezetileg igen. „Mindössze” el kellett volna kezdeni feltölteni, csak nem volt mivel (most sincs). Abban egyet értettünk, hogy Fellow munkája jó irány, de túlzottan részletes, és elavult, sokat kellett volna dolgozni rajta. Ezért próbáltunk meg egy szélesebb körû felmérést készíteni, a fórumozóknak mi és milyen formában lenne a jobb. De senki sem válaszolt rá. Most itt tartunk: van egy FAQ (helpdesk) motor, ami tátong az ürességtõl. Csak a teszt tartalom található meg. A fejlesztési fázis sikeres volt, nem bukott meg. Ellentétben…

                        http://gabaman.uw.hu/

                        Ami a media wiki-t illeti, volt a linuxfórumnak saját wiki-je, de tudtommal senki sem használta. De akár egy sima szöveges fájlban is össze lehetett volna gyûjteni a pl. a top 20 kérdést, de még egy kib… szöveges fájlt sem készített senki sem. Tehát NEM a saját fejlesztésen és nem is a wiki-n bukott meg a dolog. Abban nyugodtan hibáztathattok, hogy egyedül (magam nevében beszélek) megcsinálhattam volna, de nem voltam hajlandó (na miért nem?).

                      10 bejegyzés megtekintése - 581-590 / 2,173