Home > Software engineering >  Getting the first 5 lines from PID and COMMAND using top
Getting the first 5 lines from PID and COMMAND using top

Time:12-18

hi i'm struggling to figure out how to get the top 5 lines of the PID and COMMAND headers when opening top

at the moment im using

top | awk '{print $1,$2}NR==5{exit}'

this is obviously annoyingly giving me this:

Processes: 390
2021/12/17 13:47:48
Load Avg:
CPU usage:
SharedLibs: 146M

CodePudding user response:

With your shown samples, please try following code. Since you need top 5 PIDs details so printing first 5 lines wouldn't work here. So skipping first 6 lines in output of top(which are about system details).

top -b | awk 'FNR>=7 && FNR<=12{print $1};FNR==12{exit}'

Explanation: Simple explanation of above code would be, passing top command's output to awk as an standard input. Then in awk program checking condition if line number is from 7th to 12th then print it and on 12th line exit out of program.

Where definition of top -b option is as follows from man top:

b :Batch-mode operation Starts top in Batch mode, which could be useful for sending output from top to other programs or to a file. In this mode, top will not accept input and runs until the iterations limit you've set with the `-n' command-line option or until killed.

  • Related