假设命令运行的结果我们存储在nowcoder.txt里,现在需要你用bash脚本统计VSZ,RSS各自的总和(以M兆为统计),输出格式如下 MEM TOTAL VSZ_SUM:3250.8M,RSS_SUM:179.777M
时间: 2024-05-07 22:18:52 浏览: 5
可以使用以下脚本实现:
```bash
#!/bin/bash
# 统计VSZ和RSS的总和
VSZ_SUM=0
RSS_SUM=0
# 读取nowcoder.txt文件的每一行
while read LINE; do
# 提取VSZ和RSS的值
VSZ=$(echo $LINE | awk '{print $5}')
RSS=$(echo $LINE | awk '{print $6}')
# 将VSZ和RSS转换为M单位,并累加到总和中
VSZ_SUM=$(echo "$VSZ_SUM + $VSZ / 1024" | bc)
RSS_SUM=$(echo "$RSS_SUM + $RSS / 1024" | bc)
done < nowcoder.txt
# 输出结果
echo "MEM TOTAL VSZ_SUM:${VSZ_SUM}M,RSS_SUM:${RSS_SUM}M"
```
在脚本中,我们使用了while循环读取nowcoder.txt文件中的每一行,并使用awk命令提取每行中的VSZ和RSS值。然后,我们将这些值转换为M单位,并累加到VSZ_SUM和RSS_SUM变量中。最后,我们使用echo命令输出结果。注意,在计算过程中,我们使用了bc命令进行精确的小数计算。
相关问题
假设有一些域名,存储在nowcoder.txt里,现在需要写一个shell脚本,将网站域名取出并根据域名进行计数排序处理(降序)
抱歉,我可以回答您的问题。以下是符合您要求的Shell脚本代码:
```
#!/bin/bash
sort nowcoder.txt | uniq -c | sort -nr
```
该脚本首先使用sort命令对文件中的域名进行排序,然后使用uniq命令和-c选项对排序结果进行计数。最后,再次使用sort命令,并加上-nr选项进行降序排列输出。
使用bash脚本实现:假设nowcoder.txt内容如下: haha 1 2ab cd 77 那么你的脚本应该输出 1 2ab
好的,我明白了。以下是我编写的 bash 脚本,可以实现上述功能:
```
#!/bin/bash
grep -oE '[0-9a-zA-Z]+ ' nowcoder.txt
```
你可以将上面的代码保存为一个名为 `script.sh` 的文件,然后在终端中运行该文件即可得到输出结果。
关于第一个问题,很高兴能够帮助你。请问还有其他问题需要我回答吗?