Qual è il modo corretto di usare il comando di taglio sull'output del comando ps

0

Questa domanda è relativa a una domanda che ho postato su processo di firefox rogue relativo ai processi di firefox che seguono l'immagine caricamenti che ho avuto per un po '.

Sto cercando di raggiungere il secondo campo del comando ps con il seguente set di pipe, in modo da poter eliminare rapidamente i processi dalla riga di comando:

ps aux| grep fire|cut -f 2

Tuttavia questo produce l'output sbagliato in quanto mostra l'intera linea di ps.

So che il delimitatore predefinito per il taglio è tab

Ho anche provato:

ps aux| grep fire|cut -f 2 -d \t

Da questa domanda su stackoverflow So che

ps axu | grep '[f]irefox' | awk '{print $2}'

mi dà l'output che voglio.

Voglio capire perché le mie due versioni di cut non funzionano, e può essere fatta per lavorare piping ps su grep e poi per tagliare e arrivare alla seconda colonna (cioè gli ID di processo).

    
posta Deesbek 01.02.2014 - 11:42
fonte

1 risposta

3

ps non usa Tab per separare la colonna (esegui ps aux > foo; vi foo per verificare). In alternativa puoi cut a livello di carattere eseguendo

kill $(ps aux | grep fire | cut -c 17-23)

Oppure puoi anche solo eseguire

pkill fire

(o pgrep fire per vedere quali processi corrispondono)

    
risposta data 01.02.2014 - 13:04
fonte

Leggi altre domande sui tag