ответ не-awk:
cut -d" " -f1 file |
sort -n |
tee >(echo "min=$(head -1)") \
> >(echo "max=$(tail -1)")
. Эта команда может быть слишком умной. tee дублирует поток stdin в имена файлов в качестве аргументов, а также передает те же данные в stdout. Я использую замену процессов для фильтрации потоков.
Тот же эффект может быть использован (с меньшим расцветком) для извлечения первой и последней строк потока данных:
cut -d" " -f1 file | sort -n | sed -n '1s/^/min=/p; $s/^/max=/p'
или
cut -d" " -f1 file | sort -n | {
read line
echo "min=$line"
while read line; do max=$line; done
echo "max=$max"
}