我注意到' grep'命令删除列名称。 我需要根据以下命令自定义进程的输出:
ps -ef | egrep "java|mysql" | awk {'print $1, $2, $8'}
常规' ps' (甚至使用' awk')都有列名:UID,PID等...... 但是,当我添加' grep'列名称消失了。 理想情况下,我必须拥有' ps'输出显示4列 - PID,用户名,CMD和内存使用情况。 如何保留列名称。
答案 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