[Olug-list] Catch 22
Nicolai Langfeldt
janl at linpro.no
Thu, 27 Nov 2003 22:49:00 +0100
Frode Jemtland wrote:
> torsdag 27. november 2003, 20:49, skrev Gaute Amundsen:
>=20
> Hva med =E5 fjerne grep ?
>=20
>=20
>>kill `ps ax | grep kio_pop3 |grep -v grep| cut -b -6`
Tre triks for prisen av et:
kill `ps ax | awk '/k[i]o_pop3/ { print $ 1 }'`
eller hvis det er _riktig_ mange kio_pop3'er:
ps ax | awk '/k[i]o_pop3/ { print $1 }' | xargs kill
1. Awk s=F8ker etter m=F8nsteret /k[i]o_pop3/ og n=E5r den finner det s=E5=
skriver den ut kolonne 1 p=E5 den linjen.
2. Det regul=E6re uttrykket /k[i]o_pop3/ matcher 'kio_pop3' men ikke
'k[i]o_pop3' s=E5 derfor finner det ikke seg selv. Det virker =E5
skrive slikt til grep ogs=E5: ps ax | grep 'k[i]o_pop3'
3. N=E5r en kommando gennererer riktig _mye_ output s=E5 greier ikke
shellet =E5 bygge en stor nok kill kommando og f=F8rste alternativ
feiler. Her kommer xargs alternativet inn.
3 er det ikke s=E5 farlig med vanligvis. Grensen p=E5 hvor lang en komma=
ndo=20
kan v=E6re er ganske h=F8y p=E5 moderne Linux.
Nicolai