[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