Jos esim komento : "ps -aux | grep jotain" palauttaa rivin:
"www 25850 0,0 2,0 25648 20316 jne.." niin miten voin saada irti tuosta merkkijonomössöstä prosessinumeron, eli tässä tapauksessa 25850 numeron?
"www 25850 0,0 2,0 25648 20316 jne.." niin miten voin saada irti tuosta merkkijonomössöstä prosessinumeron, eli tässä tapauksessa 25850 numeron?
Vastaukset 5
Vanhimmat
Kun tiedät että se prosessinumero on toinen sarake niin poimi vain se.
ps -aux| grep jotain|awk '{ print $2 }'
man sed
ps ax | grep jotain | cut -b 1-6
Ne näyttävät kaksi numeroa, ensimmäinen se haettava, ja toinen "grep jotain"-prosessin numero, voiko sen korjata, että ne palauttaisivat vain yhden numeron?
Jos samalla rivillä missä on "jotain" ei ole merkkijonoa "grep", niin varminta on poistaa kaikki grep-merkkijonon sisältävät rivit grep -v:llä:
ps axu | grep jotain | grep -v grep | awk '{print $2}'
Riveistähän voisi poimia ensimmäisen tai viimeisen putkittamalla rivit komennoilla "head -n 1" tai "tail -n 1". Mutta sitähän ei voi tietää, onko grepin sisältävä turha rivi ensimmäisenä vai viimeisenä, ellei sitten "jotain" ole "init", jolloin taas PIDin voisi arvata greppaamattakin.