oscar@utcsrgv.UUCP (Oscar M. Nierstrasz) (04/11/84)
Here is a (Bourne) shell script for perusing newsgroups that you don't normally read. It compiles a list of subject headings for all unread articles starting from the last one you read. With the -a flag, all articles are listed (done automatically if last-read article has expired). Arguments are newsgroups (eg: `ns net.sources'). The output could conceivably be edited into shell script that selects the articles you're interested in ... Enjoy! ------------------------- cut here ---------------------- #! /bin/sh # ns [-a] newsgroups ... # List subject headings of articles in listed newsgroups # starting at last-read article in .newsrc. # With the -a flag all articles are listed. # Author : Oscar Nierstrasz @ utcsrgv!oscar case $# in 0 ) echo 'Usage: ns [-a] <news group> ...' 1>&2 exit ;; esac nrc=$HOME/.newsrc if test ! -r $nrc then echo "ns : Can't find $nrc" 1>&2 exit fi n=/usr/spool/news s='/^Subject:/ { print FILENAME ": " $0 ; exit }' case $1 in -a ) all=y shift ;; * ) all=n ;; esac for i do d=`echo $i | sed "s/\./\//g"` if test ! -d $n/$d then echo "$i : no such newsgroup" 1>&2 else cd $n/$d echo echo "--- $i : $n/$d ----" echo case $all in y ) f=all ;; n ) f=`sed -n "/^$i:/s/.*-//p" $nrc` case $f in "" ) f=all ;; * ) if test ! -r $f then f=all fi ;; esac ;; esac case $f in all ) for j in * do awk "$s" $j done ;; * ) while test -r $f do awk "$s" $f f=`expr $f + 1` done ;; esac fi done
oscar@utcsrgv.UUCP (Oscar M. Nierstrasz) (04/12/84)
No doubt someone will point out that the shell script `ns' does the same thing that `readnews -l' does, and less efficiently, but it will be a little faster getting started when your .newsrc is hopelessly out-of-date. Each to his own ...