#!/bin/bash

# 分析文本内容
# USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
# root         1  0.0  0.1  37344  4604 ?        Ss    2020   2:13 /sbin/init

# 业务知识
# 这是 ps 命令输出的结果
#     VSZ: 虚拟内存大小(在这个例子中是 37344 KB)
#     RSS: 实际内存使用(在这个例子中是 4604 KB)


# 问题提炼:统计VSZ,RSS各自的总和(以M兆为统计)
# 输出的格式:
# MEM TOTAL   直接打印
# VSZ_SUM:3250.8M,RSS_SUM:179.777M

# 思路:
# VSZ 在第5列,RSS在第6列
# awk  两个变量 分别统计 VSZ 和 RSS
# 1024KB = 1MB   bit--B--KB---MB---GB----TB   汇总后的KB 除以 1024 得到对应的MB 显示

grep -v 'USER' nowcoder.txt |
awk '
    BEGIN{
        vsz_sum = 0
        rss_sum = 0
    }
    {
        vsz_sum += $5
        rss_sum += $6
    }
    END{
        print "MEM TOTAL"
        printf("VSZ_SUM:%0.1fM", vsz_sum/1024)
        printf ","
        printf("RSS_SUM:%0.3fM", rss_sum/1024)
    } 
' 

END