find maximum/minimum value in a column

awk

get line with maximum value in column 2 using awk

echo -e 'a 3\nb 5\na 7\nb 9' | awk '{print $2, $1}' | sort -k2 -k1nr | awk '$2 != x { print } { x = $2 }'

get line with minimum value in column 2 using awk

echo -e 'a 3\nb 5\na 7\nb 9' | awk '{print $2, $1}' | sort -k2 -k1n | awk '$2 != x { print } { x = $2 }'

datamash

get line with maximum value in column 2 using datamash

echo -e 'a 3\nb 5\na 7\nb 9' | datamash -s -W -g 1 max 2

get line with minimum value in column 2 using datamash

echo -e 'a 3\nb 5\na 7\nb 9' | datamash -s -W -g 1 min 2

Leave a comment