使用' grep'命令保存列名称的方式

时间:2017-06-19 03:49:58

标签: linux bash

我注意到' grep'命令删除列名称。 我需要根据以下命令自定义进程的输出:

ps -ef | egrep "java|mysql" | awk {'print $1, $2, $8'}

常规' ps' (甚至使用' awk')都有列名:UID,PID等...... 但是,当我添加' grep'列名称消失了。 理想情况下,我必须拥有' ps'输出显示4列 - PID,用户名,CMD和内存使用情况。 如何保留列名称。

2 个答案:

答案 0 :(得分:1)

grep命令将删除标题,因为它们不匹配。除了搜索模式之外,只需使用awk并匹配第一行条件。

ps -ef |  awk 'NR==1{print $1,$2,$8} /java|mysql/{print $1, $2, $8}'

答案 1 :(得分:0)

Use the power of bash.

$ cat pid_top.sh
#!/bin/bash

echo "Enter String:"
read p

top -n 1 -b -p $(ps -e | grep $p | awk '{print $1}') | tail -n 2

Don't forget chmod +x pid_top.sh

Make an alias or run the script by name, enter a string, e.g. for firefox just fire an you will have and output like this:

$ ./p*
Enter String:
fire
PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     ZEIT+ BEFEHL
2983 bang      20   0 1605624 600168 108940 S   0,0 15,1  40:28.10 firefox