#!/bin/sh
# JPD 17.06.02
# Modified for improved compatibility with bash (thanks to janus at bananus.dk for his help) 

alias print=echo
progname=${0##*/}
path=${0%/*}
set -
if (($#<3))
  then
    print "$0 : limits number of data lines to N in ASCII data files"
    print "         ==> usage: ${0##*/} Nb_header_lines Nb_data_lines file [other files ...] "
    print "                    Nb_header_lines : Number of header lines to leave unmodified"
    print "                    Nb_data_lines : Number of data lines in output"
    exit 1
fi

Nb_header_lines=$1
shift
Nb_lines=$1
shift
tot_nb=$(cat $1|wc -l|tr -d [:blank:])
#print $tot_nb
while (( $#>0 )) ; do
   gawk -v Nb_header_lines=$Nb_header_lines  -v Nb_lines=$Nb_lines  -v tot_nb=$tot_nb '
BEGIN{
ratio = Nb_lines/(tot_nb-Nb_header_lines)
#print ratio
nb_written = 0
}
{
 if(NR<=Nb_header_lines)print
 else
  {
    nb_to_write=(NR-Nb_header_lines)*ratio
#    print "==>" nb_to_write
    if(nb_to_write>nb_written)
     {
       print
       nb_written++
     }
  }
}' $1

   shift
   done
