как вывести максимальное и минимальное значение столбца в текстовом файле в переменную

Попробуйте это,

awk -F ',' 'NR==FNR{a[$1]++;next};a[$1] == 0'  List2  List1

2,name2                    
4,name4                   
5,name5                  
8,name8                  
9,name9
  • a[$1]++; next:сохраняет 1-е поле в массиве. Затем
  • a[$1] == 0:блок else будет выполняться, только если это второй файл, поэтому мы проверяем, было ли уже просмотрено поле 1 этого файла(a[$1]==0).
1
09.08.2020, 14:43
2 ответа

Awk& #xA0;программа:

FNR == 1 { next; }

FNR == 2 { max = min = $2; next }

{
    if ($2 > max) {
        max = $2; 
    } else if ($2 < min) {
        min = $2;
    }
}

END { printf("max: %d, min: %d\n", max, min); }

Использование:

$ awk -f./tmp.awk./tmp.txt
max: 50, min: 20
0
18.03.2021, 23:13

Математические операции также можно выполнять с помощью утилиты настольного калькулятора dc в Linux. Он работает с данными, присутствующими в его стеке. И когда мы читаем строку, используя ? команда, она помещает операнды (через пробел )в стек. Он включает рекурсивный вызов команд, хранящихся в регистрах. Вы можете прочитать больше в руководстве gnu dc.

$ if="abc.txt"
$ declare -a a=($(< "$if" tr x- x_ | sed 1d | dc -e "
[q]sq [sMd]sa [sNd]sb
[?z0=qddlM<adlN>bcz0=?]s?
?c ?dsMsN cl?x lMlNf"))
$ min=${a[0]} max=${a[1]}
$ echo "min:$min nax:$max"

min:20 max:50
0
18.03.2021, 23:13

Теги

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