我有这个家庭作业问题:
创建函数 agg,第一个参数是文件名,第二个参数是总和、平均值或最小值。脚本将根据文件(第一个参数)中的数字计算总和、平均值或最小值(取决于第二个参数)。仅考虑一列文件,每行一个数字。
我想出了这个功能:
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
我的脚本运行正常,但没有参数。我该如何合并参数?谢谢!
答案1
您可以在此处使用案例:
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