У меня есть этот вопрос о домашней работе:
создайте функцию agg, первым аргументом является имя файла, второй будет сумма, в среднем или минимальный сценарий вычислит сумму, среднее число или минимум (dependig на 2. аргумент) от чисел в файле (1. аргумент). Рассмотрите файл только на один столбец, одно число на строку.
Я придумал эту функцию:
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
мой сценарий хорошо работает, но без аргументов. Как я могу включить аргументы?спасибо!!
Вы можете вариант использования здесь:
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