I liked this one because I've always wanted "max" and "min" programs. What I usually do is sort and use head or tail. That is very inefficient. So based on your work I made this: awk 'BEGIN {max=$1} {if ($1>max) max=$1} END {print max}' It seems to do what I want for whole lines if I do this: awk 'BEGIN {max=$0} {if ($0>max) max=$0} END {print max}' It looks like these two lines give the same output for most files: awk 'BEGIN {max=$0} {if ($0>max) max=$0} END {print max}' filename sort filename | tail -n1 Of course the awk code is much faster and I assume it uses much less memory, especially for larger input files. If input is a single column of numbers, awk will provide the numerical maximum number, but sort will not do that unless the -g option is used (sometimes -n would be enough, but not always). Any ideas about this? I'm having a problem getting min to work. This gives me a blank line as output: echo -e "1\n2" | awk 'BEGIN {min=$1} {if ($1<min) min=$1} END {print min}' I'm obviously missing something! Mike On Fri, 30 Oct 2015, Saul Alanis wrote: > Thanks Gerry. > > With your suggestion a solution was found: > > awk -F"|" 'BEGIN {max = 0} $2 ~ /foo/ {if ($1>max) max=$1} END{print max}' > > Sincerely, > SDA > > > On Fri, Oct 30, 2015 at 7:52 PM, gerry <gsker at skerbitz.org> wrote: > >> Saul, >> It sounds like you just want the max for the first field? >> gawk '/foo/{if (max < $1) max=$1} END {print $1}' file >> >> But that doesn't seem likely since it's too simple - no offence intended. >> >> Did you want the 2nd field of the row with the max of the first field? >> gawk '/foo/{if (max < $1) {max=$1;save3=$3} } END {print save3;}' >> >> I'm ignoring the vertical bars because your example had spaces which awk >> recognizes by default. >> If the spaces are not consistent then you might want to use -F. >> >> You can probably find a good example of what you want >> on http://commandlinefu.com >> >> -- >> gsker at skerbitz.org >> >> >> On Fri, 30 Oct 2015, Saul Alanis wrote: >> >> >>> I have a file with multiple fields; >>> >>> 2 | foo | bar >>> 4 | bar | foo >>> 1 | bar | foo >>> 3 | foo | bar >>> >>> My goal is to sort the first field numerically and print the first field >>> of the last result. >>> >>> awk -F"|" '/foo/ {print $1 | "sort"}' >>> >>> awk -F"|" '/foo/ {number=$1} END {print version}' >>> >>> Help is greatly appreciated :) >>> >>> SDA >>> >>> >>> >>> _______________________________________________ >> TCLUG Mailing List - Minneapolis/St. Paul, Minnesota >> tclug-list at mn-linux.org >> http://mailman.mn-linux.org/mailman/listinfo/tclug-list >> >