SED használata

Kezdőlap Fórumok Vegyes felvágott SED használata

10 bejegyzés megtekintése - 1-10 / 31
  • Szerző
    Bejegyzés
  • #2047118
    VBalint
    Felhasználó

      ha a sed utasítást másmilyen idézõjelbe („) teszed akkor jó lesz

      Code:
      cat xy | sed „s/^.*$/’&x’/”
      #2047119
      birno
      Felhasználó

        Sziasztok!

        Próbálok kontárkodni a sed-el, de persze nem igazán jön össze.
        Még soha nem használtam, olvasgattam a manját, meg a reguláris kifejezéseknek is utána néztem nagyjából, de mégsem vágom a használatukat.
        Annyit szeretnék, hogy a „ps|grep lftp” parancsból kihámozni az lftp pid-jét, majd azt átadni a „kill -19” vagy a „kill -18” parancsnak.
        Az egyik gond az, hogy általában a grep parancs folyamata is megjelenik, ezt ugye ki kell szűrni.
        Utána gondolom meg kell mondani a sed-nek, hogy a sor elején lévő számokat olvassa be egészen az első szóközig s az utána lévő részt dobja el.

        Nem vágom pl. hogyan mondom meg neki, hogy az első szóközig vegye figyelembe?
        Egy ilyesmit próbáltam(nem röhögni smiley.gif): ps|grep lftp|sed ‘/^[0-9]*/p’
        Ekkor kétszer is kiírja a találatokat.
        Aztán néztem egy ilyet: ps|grep lftp|sed ‘s/^[0-9]* //’
        Ez kivágja a pid-et az összes többit meg kidobja a kimenetre, nekem megy ugye pont a fordítottjára van szükségem.

        Nem feltétlenül a megoldást nyújtó parancs kellene, hanem csak rávezetés(amennyiben lenne hozzá türelmetek), hátha jobban megérteném a sed lelki világát és a későbbiekben könnyebben tudnám használni.

        #2047120
        tamsa
        Felhasználó

          esetleg pkill -18 lftp nem felel meg neked ?

          -TamsA-

          #2047121
          pointux
          Felhasználó

            „killall lftp” nem jó?

            #2047122
            Névtelen
              Code:
              ps -C lftp -o pid= | sed -e ‘s| ||g’ >> pid.txt

              Ezzel megkapod a pid.txt fájlba az azonosítóját. (Nem értem amúgy minek bonyolítani.)

              #2047123
              tamsa
              Felhasználó

                vagy ha nagyon matyizni akarsz akkor:
                ps -ef |grep lftp|grep -v grep|awk ‘{print $1}’

                -TamsA-

                #2047124
                Névtelen

                  grin.gif

                  #2047125
                  dotmind
                  Felhasználó

                    kill -9 `pgrep lftp`

                    #2047126
                    pointux
                    Felhasználó

                      Ó, te jóságos Isten!
                      Ágyúkkal verébre. :)))

                      #2047127
                      tamsa
                      Felhasználó

                        Mivel magyarázatot is kértél:

                        ps|grep lftp|sed 's/^[0-9]* //'
                        pont azt csinálta amit mondtál neki:
                        mit is?
                        ps=listázd ki a futó (azonos shellből indított) parancsokat
                        |grep lftp = listából vedd azokat amik tartalmazzák az lftp karakterlácot
                        |sed 's/^[0-9]* //' = a visszakapott sorokkal tedd a kovetkezőt: elejéről a számokkal kezdődő csak számokat tartalmazó szavakat dobd el.

                        lássunk egy sed-es megoldást is megfogalmazva ha a ps kimente

                        PID, TTY, TIME, CMD

                        PID szám utána szóköz(ök) betű(k) ….

                        amit ki kéne vágni az a szám utáni szóköz+hablaty reguláris kifejezése:
                        " [a-Z].*"

                        teljes paranccsal:
                        ps|grep lftp|grep -v grep|sed 's/ [a-Z].*//'

                        -TamsA-

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