创建文件的总和、平均和最小值

Mar*_*oah 2 bash scripts

我有这个作业问题:

创建函数 agg,第一个参数是文件名,第二个参数是 sum、avg 或 min。脚本将根据文件 (1. arg.) 中的数字计算总和、平均值或最小值(取决于 2. 参数)。仅考虑一个列文件,每行一个数字。

我想出了这个功能:

agg(){

    cat $1 | awk '{sum+=$1} END{print "sum of first column = "sum}'
    cat $1 | awk '{sum+=$1} END { print "Average = ",sum/NR}'
    cat $1 | awk 'min=="" || $1 < min {min=$1} END{ print "min="min}'

}
agg y
Run Code Online (Sandbox Code Playgroud)

我的脚本工作正常,但没有参数。我怎样才能合并这些论点?谢谢!!

Way*_*Yux 5

您可以在此处使用案例:

case "$2" in
  sum) awk '{sum+=$1} END{print "sum of first column = "sum}' "$1";;
  avg) awk '{sum+=$1} END { print "Average = ",sum/NR}' "$1";;
  min) awk 'min=="" || $1 < min {min=$1} END{ print "min="min}' "$1";;
esac
Run Code Online (Sandbox Code Playgroud)