Android - Как получить список зарегистрированных геозон

Ваша проблема заключалась в том, что в вашем скрипте у вас было:

if ($1<a) a=$1 fi

и что final fi не является частью синтаксиса awk, поэтому он рассматривается как переменная, поэтому a=$1 fi является конкатенацией строк и поэтому вы являетесь TELLING awk, что a содержит строку, а не число и, следовательно, сравнение строк вместо числовых в $1<a.

Что более важно вообще, никогда не начинайте с какого-либо угадываемого значения для max / min, просто используйте первое значение, считанное как семя. Вот правильный способ написания скрипта:

$ cat tst.awk
BEGIN { min = max = "NaN" }
{
    min = (NR==1 || $1<min ? $1 : min)
    max = (NR==1 || $1>max ? $1 : max)
}
END { print min, max }

$ awk -f tst.awk file
4 12

$ awk -f tst.awk /dev/null
NaN NaN

$ a=( $( awk -f tst.awk file ) )
$ echo "${a[0]}"
4
$ echo "${a[1]}"
12

Если вам не нравится NaN выберите то, что вы предпочитаете печатать, когда входной файл пуст.

20
задан Simon 19 May 2013 в 06:19
поделиться