shrinkfile - shrink a file on a line boundary

          shrinkfile [ -n ] [ -m maxsize ] [ -s size ] [ -v ] file...

          The shrinkfile program shrinks files to a given size if the
          size is larger than maxsize,
           preserving the data at the end of the file.  Truncation is
          performed on line boundaries, where a line is a series of
          bytes ending with a newline, \n.  There is no line length
          restriction and files may contain any binary data.

          Temporary files are created in the /tmp directory.  The
          ``TMPDIR'' environment variable may be used to specify a
          different directory.

          A newline will be added to any non-empty file that does not
          end with a newline.  The maximum file size will not be
          exceeded by this addition.

          By default, size is assume to be zero and files are
          truncated to zero bytes.  By default, maxsize is the same as
          size.  If maxsize is less than size, maxsize is reset to
          size.  The ``-s'' flag may be used to change the truncation
          size.  Because the program truncates only on line
          boundaries, the final size may be may be smaller then the
          specified truncation size.  The size and maxsize parameter
          may end with a ``k'', ``m'', or ``g'', indicating kilobyte
          (1024), megabyte (1048576) or gigabyte (1073741824) lengths.
          Uppercase letters are also allowed.  The maximum file size
          is 2147483647 bytes.

          If the ``-v'' flag is used, then shrinkfile will print a
          status line if a file was shrunk.

          If the ``-n'' flag is used, then shrinkfile will exit 1 if
          any file is larger than maxsize and exit 0 otherwise.  No
          files will be altered.

          Example usage:

               shrinkfile -s 4m curds
               shrinkfile -s 1g -v whey
               shrinkfile -s 500k -m 4m -v curds whey
               if shrinkfile -n -s 100m whey; then echo whey is way too big; fi

          Written by Landon Curt Noll <{chongo,noll}@{toad,sgi}.com> and Rich $alz
          <> for InterNetNews.