Kezdőlap › Fórumok › Vegyes felvágott › SED használata
- This topic has 30 hozzászólás, 9 résztvevő, and was last updated 17 years, 6 months telt el by
dotmind.
-
SzerzőBejegyzés
-
2007-12-27-16:32 #2047128
Húha mennyi válasz.
1. pkill
Nem ismertem a parancsot, de azt hiszem sokkal könnyebb lesz vele az életem, köszi!2. killall nem jó, mert akkor elveszik a queue list és állíthatom össze újra, ezért akarom csak felfüggeszteni.
3. ps -C lftp -o pid= | sed -e ‘s| ||g’ >> pid.txt
Ez is működik, viszont nem értem, hogy a „sed -e ‘s| ||g'” rész mit csinál, mert ha kihagyom akkor is ugyanazt az eredményt kapom.4. ps -ef |grep lftp|grep -v grep|awk ‘{print $1}’
Erre a felhasználót írja ki aki indította a folyamatot, „ps -ef |grep lftp|grep -v grep|awk ‘{print $2}'” formában már valóban a pid-et kapom meg.5. kill -9 `pgrep lftp`
Lásd 2. pont -9 miatt, de a pgrep szintén új volt.Mindenkinek köszi a helpet, sok új és hasznos infót kaptam!
A matyizásról meg csak annyit, az nem jutott eszetekbe, hogy nem ismerem a megfelelő parancsokat, kapcsolókat és azért akarom túlbonyolítani?2007-12-27-16:34 #2047129A feladat a sed használata. Anélkül nem ér a megoldás.
2007-12-27-16:37 #2047130birno wrote:A matyizásról meg csak annyit, az nem jutott eszetekbe, hogy nem ismerem a megfelelő parancsokat, kapcsolókat és azért akarom túlbonyolítani?Aki Gentú Haladóban járkál, arról az ember nem szívesen tételezi fel, hogy nem ismeri a mant.
2007-12-27-16:44 #2047131birno wrote:A matyizásról meg csak annyit, az nem jutott eszetekbe, hogy nem ismerem a megfelelő parancsokat, kapcsolókat és azért akarom túlbonyolítani?Pont ez jutott eszembe… (Csak valahogy rossz ómen, ha hozzáteszem, hogy „man”, de ha már így alakult: „man killall”.)
2007-12-27-16:47 #2047132kisbetu wrote:A feladat a sed használata. Anélkül nem ér a megoldás.Hát, ezt el kell ismernem/nünk. :)))
kisbetu wrote:Aki Gentú Haladóban járkál, arról az ember nem szívesen tételezi fel, hogy nem ismeri a mant.Egy csomó mindent nem szívesen tesz az ember… amit meg kell tenni. 😉
2007-12-27-16:50 #2047133kisbetu: akkor végül is megoldottam a feladatot 🙂
-TamsA-
2007-12-27-17:00 #2047134Konzokveníció: BÚÉK mindenkinek!
2007-12-27-17:05 #2047135tamsa wrote: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-
Azt értettem, hogy mit csinál az általam kiadott parancs, csak nem tudtam hogyan csináljam meg a fordítotját.
Amit írtál nekem nem ad vissza semmit, mert simán „ps” parancsra nem dobja ki az lftp-t, viszont a következő formában már jó: „ps -eo pid,comm|grep lftp|sed ‘s/[a-z].*//'”
Viszont nem értem, hogy „ps -eo pid,comm|grep lftp|sed ‘s/[a-z]*//'” formában miért nem ok?
Kihagytam a „.” karaktert, így azt mondom neki, hogy az „a-z” karakterek és azok ismétlődéseit szedje ki, nem?
A te általad írt formában pedig azt, hogy az „a-z” karaktereket plusz bármely más karaktert és ismétlődéseit hagyja ki, bár ez így hülyeség, mert akkor a számokat is törölné.
Akkor pontosan mit is mond neki a „sed ‘s/[a-z].*//'” parancs?
Miért kell oda a pont?2007-12-27-17:06 #2047136bacsi2 wrote:Code:ps -C lftp -o pid= | sed -e ‘s| ||g’ >> pid.txtEzzel megkapod a pid.txt fájlba az azonosítóját. (Nem értem amúgy minek bonyolítani.)
pidof lftp >> pid.txt
Ennél egyszerűbb már csak az lenne, ha erősen rágondolnál, ha megjelenne magától az a pid.txt a megfelelő tartalommal ;DDe ha csak sed kell:
Code:for i in $(echo /proc/* | sed „s@ @n@g” | sed -n „//proc/[0-9]{1,}/p”); do [ „$(sed -n ‘/qbittorrent/p’ $i/cmdline 2>/dev/null | sed ‘s@.*qbittorrent.*@qbittorrent@g’)” = „qbittorrent” ] && echo $i | sed „s@/proc/@@”; donePersze én a qbittorrent-et használtam lftp helyett, de ahol qbittorrent-et látsz, azt átírod lftp-re és kész.
Ja: ez CSAK sed-et használ meg „beépített” bash-parancsokat (az echo is ez!!!). Tamsa pedig még egy grep-et, sőt egy ps-t is használt 😛
2007-12-27-17:08 #2047137kisbetu wrote:birno wrote:A matyizásról meg csak annyit, az nem jutott eszetekbe, hogy nem ismerem a megfelelő parancsokat, kapcsolókat és azért akarom túlbonyolítani?Aki Gentú Haladóban járkál, arról az ember nem szívesen tételezi fel, hogy nem ismeri a mant.
Gentoo haladóban csak azért jártam, mert ott volt olyan topik amilyen problémám épp adotott, nem akartam újat nyitni, bár ahogy nézem erre rá kell szoknom.
Plusz gondolom ismered mikor az ember leragad egy általa elképzelt megoldási lehetőségnél és nem tud elvonatkoztatni tőle… -
SzerzőBejegyzés
- Be kell jelentkezni a hozzászóláshoz.
legutóbbi hsz