sed + változó nem megy

Kezdőlap Fórumok Programozás sed + változó nem megy

9 bejegyzés megtekintése - 1-9 / 9
  • Szerző
    Bejegyzés
  • #2107857
    uzsolt
    Felhasználó

      Én inkább így csinálnám (meg szoktam is):

      Code:
      sed „s@$i@$j@g”

      Túl sok és túl furcsa ott az a sok idézőjel…

      #2107858
      uzsolt
      Felhasználó

        Én inkább így csinálnám (meg szoktam is):

        Code:
        sed „s@$i@$j@g”

        Túl sok és túl furcsa ott az a sok idézőjel…

        #2107859
        chris19
        Felhasználó

          Helyzet változatlan 🙁

          Hogy egyszerűbb legyen bemásolom az egész forrást:

          Code:
          #!/bin/sh

          LSPCI=”./lspci”;
          NICLST=”nic.lst”;

          cucc=`$LSPCI | fgrep „Class 0200″ | cut -f 6 -d ” „`

          for i in `cat nic.lst | cut -f 1 -d „|”`; do
          echo -n „i=$i „;
          j=`fgrep $i nic.lst | cut -f 2 -d „|”`;
          echo -n „j=$j „;
          cucc=`echo $cucc | sed „s@$i@$j@g”`;
          echo „cucc=$cucc”;
          done

          Ez tulajdonképpen egy automatizmusnak készült, ami az lspci és egy lista segítségével
          eldönti, hogy egy hálókártyához, milyen modult kell betölteni. Hátha így segít valamelyest.
          A sok echo meg azért van, hogy a ciklusban lássam legalább a váltzásokat.
          Az lspci meg azért „./lspci” mert az egy herélt verzió pci.ids nélküli, de funkcióját tekintve változatlan.

          #2107860
          chris19
          Felhasználó

            Helyzet változatlan 🙁

            Hogy egyszerűbb legyen bemásolom az egész forrást:

            Code:
            #!/bin/sh

            LSPCI=”./lspci”;
            NICLST=”nic.lst”;

            cucc=`$LSPCI | fgrep „Class 0200″ | cut -f 6 -d ” „`

            for i in `cat nic.lst | cut -f 1 -d „|”`; do
            echo -n „i=$i „;
            j=`fgrep $i nic.lst | cut -f 2 -d „|”`;
            echo -n „j=$j „;
            cucc=`echo $cucc | sed „s@$i@$j@g”`;
            echo „cucc=$cucc”;
            done

            Ez tulajdonképpen egy automatizmusnak készült, ami az lspci és egy lista segítségével
            eldönti, hogy egy hálókártyához, milyen modult kell betölteni. Hátha így segít valamelyest.
            A sok echo meg azért van, hogy a ciklusban lássam legalább a váltzásokat.
            Az lspci meg azért „./lspci” mert az egy herélt verzió pci.ids nélküli, de funkcióját tekintve változatlan.

            #2107861
            uzsolt
            Felhasználó

              Nem tudom. A kimenetet bökd már ide! Nem lehet, hogy néhány „randa” karakter van az i és j változókban (pont, kettőspont, csillag, zárójelek, …)?

              (echo: én is így szoktam debuggolni 😉 )

              Egyébként nem tudom, tudod-e, de az udev pont ezt megcsinálja helyetted! A /etc/udev* könyvtárakban nézelődj (hogy pontosan hol, a man udev megmondja)!

              #2107862
              uzsolt
              Felhasználó

                Nem tudom. A kimenetet bökd már ide! Nem lehet, hogy néhány „randa” karakter van az i és j változókban (pont, kettőspont, csillag, zárójelek, …)?

                (echo: én is így szoktam debuggolni 😉 )

                Egyébként nem tudom, tudod-e, de az udev pont ezt megcsinálja helyetted! A /etc/udev* könyvtárakban nézelődj (hogy pontosan hol, a man udev megmondja)!

                #2107863
                chris19
                Felhasználó

                  Köszönöm a segítséget. Megoldódott. Ki sem merem mondani, de a bemeneti listában gépeltem el
                  egy karaktert. Sorry hogy mindenkit ugrasztottam emiatt.

                  Az udev dolgot, meg köszönöm. Sokat tanultam belőle. Ma is érdemes volt felkelni.

                  #2107864
                  chris19
                  Felhasználó

                    Köszönöm a segítséget. Megoldódott. Ki sem merem mondani, de a bemeneti listában gépeltem el
                    egy karaktert. Sorry hogy mindenkit ugrasztottam emiatt.

                    Az udev dolgot, meg köszönöm. Sokat tanultam belőle. Ma is érdemes volt felkelni.

                    #1886313
                    csaba
                    Felhasználó

                      Sziasztok,

                      Szerintetek ebben a részletben hol a hiba?

                      Code:
                      cucc=`echo $cucc | sed ‘s/’$i’/’$j’/g’`

                      Azt akarom elérni, hogy egy sorban kicseréljen az $i változó-nak megfelelő értéket $j változóra.
                      Ha beírom a konkrét értéket a változók helyére akkor megy.
                      Erre tudtok valami megvalósítást vagy hogy mi lehet a hiba?

                      A válaszokat előre is köszönöm.

                    9 bejegyzés megtekintése - 1-9 / 9
                    • Be kell jelentkezni a hozzászóláshoz.