hola, estoy luchando para descubrir cómo obtener las 5 líneas principales de los encabezados PID y COMMAND al abrir la parte superior
en este momento estoy usando
top | awk '{print $1,$2}NR==5{exit}'
esto es obviamente molesto dándome esto:
Processes: 390 2021/12/17 13:47:48 Load Avg: CPU usage: SharedLibs: 146MCon sus muestras mostradas, intente seguir el código. Dado que necesita los detalles de los 5 PID principales, imprimir las primeras 5 líneas no funcionaría aquí. Entonces, omitiendo las primeras 6 líneas en la salida de la parte superior (que son sobre los detalles del sistema).
top -b | awk 'FNR>=7 && FNR<=12{print $1};FNR==12{exit}' Explicación: la explicación simple del código anterior sería pasar la salida del comando top a awk como una entrada estándar. Luego, en la condición de verificación del programa awk , si el número de línea es del 7 al 12, luego imprímalo y en la línea 12 salga del programa.
Donde la definición de la opción top -b es la siguiente de man top :
b :Operación en modo por lotes Comienza arriba en el modo por lotes, lo que podría ser útil para enviar la salida desde arriba a otros programas oa un archivo. En este modo, top no aceptará entradas y se ejecutará hasta el límite de iteraciones que haya establecido con la opción de línea de comando `-n' o hasta que se elimine.
Otras soluciones:
top -b para el modo por lotes
top -n 1 para un solo disparo (sin bucle)
Obtener lineas
Imprimir PID y Comando
...
top -b|head -12|tail -6|awk '{print $1, $NF}' top -b -n 1|awk 'FNR>=7 && FNR<=12{print $1, $NF}' top -b -n 1|sed -n 7,12p|awk '{print $1, $NF}'Para MAC OS X, el comando es:
top -a -n20 | awk 'FNR>=11 && FNR<=31{print $0};FNR==31{exit}' > cpustat.txt