Given a file with such data (e.g. store.dat file)
sid|storeNo|latitude|longitude 2tt|1|-28.0372000t0|153.42921670 9|2t|-33tt.85t09t0000|15t1.03274200
Required Conclusion:
sid : 3 storeNo : 2 latitude : 16 longitude : 13
What is the syntax for returning the maximum length of values ββunder each column?
I tried this, but it does not work:
nawk 'BEGIN { FS = "|" } { for(n = 1; n <= NF; n++) { if (length($n) > max) max = length($n) maxlen[$n] = max } } END { for (i in maxlen) print "col " i ": " maxlen[i] } ' stores.dat
UPDATE (thanks Mat answer - I decided on this):
awk -F"|" ' NR==1{ for(n = 1; n <= NF; n++) { colname[n]=$n } } NR>1{ for(n = 1; n <= NF; n++) { if (length($n)>maxlen[n]) maxlen[n]=length($n) } } END { for (i in colname) { print colname[i], ":", maxlen[i]+0; } } ' filename
source share