создайте сумму, в среднем и минута файла

У меня есть этот вопрос о домашней работе:

создайте функцию 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

мой сценарий хорошо работает, но без аргументов. Как я могу включить аргументы?спасибо!!

2
задан 24 June 2015 в 18:39

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
5
ответ дан 2 December 2019 в 01:58

Другие вопросы по тегам:

Похожие вопросы: