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

     Temporary files are created in  the  <config$_PATH_TMP>  directory.   The
     ``TMPDIR''  environment  variable  may  be  used  to  specify a different

     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.


     -s   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  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.

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

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


     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   <>   and   Rich   $alz
     <> for InterNetNews.

You can find a summary and links related to this topic
as part of the Mib Software Usenet RKT.