Выполнение с помощью быстрого Perl-скрипта (который затем вызывается из сценария оболочки):
#!/usr/bin/perl
use warnings;
use strict;
use feature qw/say/;
while (<>) {
chomp;
my @nums = sort { $a <=> $b } (split)[1,2,3];
say "Min=$nums[0] Max=$nums[2] Median=$nums[1]";
}
Пример:
$ ./example.pl try.txt
Min=131 Max=149 Median=142
Min=152 Max=456 Median=184
Или как однострочный:
$ perl -lane 'printf "Min=%d Max=%d Median=%d\n", (sort { $a <=> $b } @F[1,2,3])[0,2,1]' try.txt
Min=131 Max=149 Median=142
Min=152 Max=456 Median=184
Но так как вы спросили, вот версия awk для gawk:
$ gawk '{
arr[1] = $2; arr[2] = $3; arr[3] = $4;
asort(arr, arr, "@val_num_asc");
printf "Min=%d Max=%d Median=%d\n", arr[1], arr[3], arr[2];
}' try.txt