GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo grep salida ps con encabezados

Solución 1:

ps -ef | egrep "GMC|PID"

Reemplace el "GMC" y ps cambia según sea necesario.

Salida de ejemplo:

[email protected]:~$ ps -ef | egrep "disk|PID"

UID        PID  PPID  C STIME TTY          TIME CMD
paremh1  12501 12466  0 18:31 pts/1    00:00:00 egrep disk|PID
root     14936     1  0 Apr26 ?        00:02:11 /usr/lib/udisks/udisks-daemon
root     14937 14936  0 Apr26 ?        00:00:03 udisks-daemon: not polling any devices

Solución 2:

Gracias a geekosaur, me gustaría usar este comando para sus demandas, en lugar de un comando separado:

ps -ef | head -1; ps -ef | grep "your-pattern-goes-here"

Lo complicado es hacer uso del ";" compatible con el shell para encadenar el comando.

Solución 3:

La segunda columna es la identificación del proceso; El cuarto es cuando se creó el proceso (este suele ser el momento en que se inició su programa, pero no siempre; considere execve() y amigos); El sexto es la cantidad de tiempo de CPU consumido. Así que ha estado funcionando durante 8 días y usó casi 7 días de tiempo de CPU, lo que consideraría preocupante.

Obtener el encabezado en la misma invocación es, en el mejor de los casos, complicado; Simplemente haría un ps | head -1 separado . Podría considerar usar ps propios métodos de selección o algo como pgrep en lugar de grep , que en realidad no está diseñado para pasar encabezados.

Solución 4:

La solución egrep es simple y útil, pero, por supuesto, usted depende de que el encabezado siempre contenga 'PID' (una suposición más que razonable, sin embargo) y la misma cadena no aparece en ningún otro lugar. Supongo que esto es suficiente para tus necesidades, pero en caso de que alguien quiera una alternativa, está sed.

Sed le permite simplemente decir "imprimir la primera línea, luego cualquier línea que contenga el patrón". Por ejemplo:

ps auxwww | sed -n '1p; /PROCESS_NAME_TO_SEARCH/p;'

Agregar /sed -n/d; para filtrar sed:

ps auxwww | sed -n '1p; /sed -n/d; /PROCESS_NAME_TO_SEARCH/p;'

Solución 5:

alternativa más fácil:ps -ef | { head -1; grep GMC; }

reemplace el número con el número de líneas en las que se muestra su encabezado.


Linux
  1. ¿Cómo resaltar una palabra en la salida de "gato"?

  2. Cómo grep con salida de color

  3. ¿Cómo solicito un archivo pero no lo guardo con Wget?

  4. ¿Cómo capturar la salida de un comando superior en un archivo en Linux?

  5. ¿Cómo canalizar la salida de grep a cp?

Cómo excluir en Grep

¿Cómo unir líneas que no comienzan con "#" o ";"?

¿Cómo generar un archivo e ignorar las líneas que comienzan con "?"?

¿Cómo hago grep recursivamente?

¿Cómo concatenar varias líneas de salida en una sola línea?

Cómo grep \n en el archivo