# limit the amount of output function date2J( thedate) { # See Meeus page 60 Y= substr( thedate, 1, 4); M= substr( thedate, 5, 2); D= substr( thedate, 7, 2); if ( M < 3 ) { Y= Y - 1; M= M +12; } A= int( Y / 100 ); B= 2 - A + int( A / 4); return( int(365.25*(Y+4716)) + int(30.6001*(M+1)) + D + B - 1524.5); } function J2date( thejul) { Z= int( thejul + 0.5 ); F= ( thejul + 0.5 ) - Z; if ( Z < 2299161 ) A= Z; else { alpha= int( ( Z - 1867216.25 ) / 36524.25 ); A= Z + 1 + alpha - int( alpha / 4); } B= A + 1524; C= int( ( B - 122.1 ) / 365.25 ); D= int( 365.25 * C ); E= int( ( B - D ) / 30.6001 ); theday= B - D - int(30.6001 * E ) + F; if ( E < 14 ) themonth= E - 1; else themonth= E - 13; if ( themonth > 2 ) theyear= C - 4716; else theyear= C - 4715; thefractionalday= theday - int( theday) thehour= int( thefractionalday * 24) theminute= int( ( thefractionalday * 24 - thehour ) * 60.0 ) return sprintf( "%04d%02d%02d", theyear, themonth, theday); } BEGIN { mindate= 30000101 howmanylines= 100 } NR==1 { maxdate= $1 next } { founddates[$1]+= 1 if ( $1 < mindate ) mindate= $1 } END { thedate= date2J( mindate) + 0.1 maxdate= date2J( maxdate) while ( ( thedate < maxdate ) && ( howmanylines > 0 ) ) { if ( ( founddates[ J2date(thedate) ] != 4 ) && (J2date(thedate) > 20100000) ) { print J2date(thedate) howmanylines-- } thedate+= 1 } }