Решения, которые устанавливают начальное значение mx=0
, не будут работать, если все поля в записи будут отрицательными. Установка на $1
безопасна, и тогда поля могут быть зациклены, как @Peter.O.
Просто для удовольствия, вот небольшой awk
вариант перебора индексов массива head
вместо создания счетчика и зацикливания
awk -F',' '
NR==1{split($0,head,FS); next}
{x=1; for (h in head) if ($h>$x) x=h;print head[x], $x }
' file
Выход
col4 6
col1 4
col2 2
col3 7