prunehistory - remove file names from Usenet history file

     prunehistory [ -f filename ] [ -p ] [ input ]

     Prunehistory modifies the history(5)  text file to  ``remove''  a  set  of
     filenames  from  it.   The filenames are removed by overwriting them with
     spaces, so that the size and position of any following entries  does  not

     Prunehistory reads the named input file, or standard input if no file  is
     given.   The  input  is  taken  as a set of lines.  Blank lines and lines
     starting with a number sign (``#'') are ignored.   All  other  lines  are
     should consist of a Message-ID followed by zero or more filenames.

     The Messge-ID is used as the dbz(3) key to get an offset  into  the  text
     file.   If  no  filenames  are  mentioned  on  the  input  line, then all
     filenames in the text are ``removed.''  If any filenames  are  mentioned,
     they are converted into the history file notation.  If they appear in the
     line for the specified Message-ID then they are removed.

     Since innd(8)  only appends to the text file, prunehistory does  not  need
     to have any interaction with it.


     -p   Prunehistory will normally complain about lines that do  not  follow
          the  correct  format.   If the ``-p'' flag is used, then the program
          will silently print  any  invalid  lines  on  its  standard  output.
          (Blank  lines  and comment lines are also passed through.)  This can
          be useful when prunehistory is used as a filter for  other  programs
          such as reap.

     -f   The default name of the history file is  <config$_PATH_HISTORY>;  to
          specify a different name, use the ``-f'' flag.


     It is a good idea to delete purged entries and rebuild the  dbz  database
     every so often by using a script like the following:

          ctlinnd throttle "Rebuilding history database"
          cd <config$_PATH_NEWSLIB>
          awk 'NF > 2 {
               printf "%s\t%s\t%s", $1, $2, $3;
               for (i = 4; i <= NF; i++)
                    printf " %s", $i;
               print "\n";
          }' <history >history.n
          if makehistory -r -f history.n ; then
              mv history.n history
              mv history.n.pag history.pag
              mv history.n.dir history.dir
              echo 'Problem rebuilding history; old file not replaced'
          ctlinnd go "Rebuilding history database"

     Note that this keeps no record of expired articles.

     Written by Rich $alz  <>  for  InterNetNews.   This  is
     revision 1.9, dated 1996/10/29.

     dbz(3), history(5) , innd(8) .

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