【Shell案例】【取指定列的方式$5 p[6],双括号运算、awk、管道运算】8、统计所有进程占用内存大小的和
2022/5/3 7:14:03
本文主要是介绍【Shell案例】【取指定列的方式$5 p[6],双括号运算、awk、管道运算】8、统计所有进程占用内存大小的和,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
假设 nowcoder.txt 内容如下:
root 2 0.0 0.0 0 0 ? S 9月25 0:00 [kthreadd]
root 4 0.0 0.0 0 0 ? I< 9月25 0:00 [kworker/0:0H]
web 1638 1.8 1.8 6311352 612400 ? Sl 10月16 21:52 test
web 1639 2.0 1.8 6311352 612401 ? Sl 10月16 21:52 test
tangmiao-pc 5336 0.0 1.4 9100240 238544 ?? S 3:09下午 0:31.70 /Applications
以上内容是通过ps aux | grep -v 'RSS TTY' 命令输出到nowcoder.txt文件下面的
请你写一个脚本计算一下所有进程占用内存大小的和:
重点:使用双小括号实现运算和条件判断
方法1:for循环+累加
思路:
取某一列的值,并通过变量的方式累加
确定哪一列是内存占用大小:USER PID %CPU %MEM
确定如何取某一个内容 $3
如何转为整形
定义累加变量let sum=0
#!/bin/bash sum=0 # 每一行寻找第几列的值USER PID %CPU %MEM,即第i行的第3列 # 利用awk直接得到第6个元素的内容 for i in `awk '{print $6}' nowcoder.txt` # 并不是真的打印,而是把值传递给i do ((sum+=$i)) done echo $sum
方法2:while循环
#!/bin/bash sum=0 while read p do arr=($p) ((sum+=arr[5])) done < nowcoder.txt echo $sum
方法3:awk实现结果计算
#!/bin/bash awk 'BEGIN{sum=0}{sum+=$6}END{print sum}' nowcoder.txt
或直接省略BEGIN初始化操作
#!/bin/bash awk '{sum+=$6}END{print sum}' nowcoder.txt
方法4:while循环和awk结合
#!/bin/bash sum=0 while read p do # 管道与awk结合 ((sum+=$(echo $p|awk '{print $6}'))) done < nowcoder.txt echo $sum
这篇关于【Shell案例】【取指定列的方式$5 p[6],双括号运算、awk、管道运算】8、统计所有进程占用内存大小的和的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解
- 2024-11-23Java对接阿里云智能语音服务入门教程
- 2024-11-23JAVA对接阿里云智能语音服务入门教程
- 2024-11-23Java副业入门:初学者的简单教程
- 2024-11-23JAVA副业入门:初学者的实战指南