kenk@richsun.UUCP (Ken Konecki) (10/27/88)
With all this talk of scripts to combine postings I though I'd throw in my 2 cents worth. Here's an awk script that will filter out all the graft from a multiple post binary. Just specify as arguments to the script which files to combine. If no files are specified, it will read from stdin. It will write its output to stdout. Note that the files will be concatenated in the order specified. example: combine binary.1 binary.2 > binary.hqx This will combine the postings binary.1 and binary.2 to the BinHex file binary.hqx Note that by having this script there is NO preprocessing to be done to the postings after you save them with your favorite news reader. I've also included a short sed script to remove the 'This file must be converted...' and blank line immeditaely following from the BinHex file. For some reason I'm not sure of (maybe someone can enlighten me) the BinHex program I use (5.0) barfs if those lines are in the file to be converted. It will read from stdin if no files are specified and write to stdout. If any arguments are specified it will remove the two lines from each file specified. Note that the original file will not be preserved in this case. example: combine binary.1 binary.2 | bhprep > binary.hqx This will combine the two postings binary.1 and binary.2, strip off the two inital lines (but onlyy if they are the 'This file...' and the immediately following blank line and put it all into the file binary.hqx Have fun. If you have any questions, just ask. My address is ...!uunet!richsun!kenk or if that won't work try: ...!purdue!richp1!richsun!kenk Here's the shar file: --- Cut here --- #! /bin/sh # This is a shell archive, meaning: # 1. Remove everything above the #! /bin/sh line. # 2. Save the resulting text in a file. # 3. Execute the file with /bin/sh (not csh) to create the files: # combine # bhprep # This archive created: Thu Oct 27 10:02:15 1988 export PATH; PATH=/bin:$PATH echo shar: extracting "'combine'" '(327 characters)' if test -f 'combine' then echo shar: will not over-write existing file "'combine'" else cat << \SHAR_EOF > 'combine' #! /bin/sh # Script: combine # Author: Ken Konecki # Date: 20 October 88 # Purpose: To combine multiple postings into one file exec awk ' BEGIN { keep = 0; } /^---/ || /[Cc][Uu][Tt] [Hh][Ee][Rr][Ee]/ { if (keep == 1) keep = 0; else keep = 1; continue; } keep == 1 { print $0 }' "$@" SHAR_EOF if test 327 -ne "`wc -c < 'combine'`" then echo shar: error transmitting "'combine'" '(should have been 327 characters)' fi chmod +x 'combine' fi # end of overwriting check echo shar: extracting "'bhprep'" '(451 characters)' if test -f 'bhprep' then echo shar: will not over-write existing file "'bhprep'" else cat << \SHAR_EOF > 'bhprep' #! /bin/sh # Script: bhprep # Author: Ken Konecki # Date: 11 Oct 88 # Purpose: To prepare BinHex files for downloading to the Mac if [ ${#} -eq 0 ] # Read from stdin then sed -e '1,2{/This file must be converted/,/^$/d }' else trap 'rm -f /tmp/prep$$' 1 2 15 EXIT for i in "$@" do echo -n "Prepping $i......." sed -e '1,2{/This file must be converted/,/^$/d }' $i > /tmp/prep$$ mv /tmp/prep$$ $i echo "done" done fi SHAR_EOF if test 451 -ne "`wc -c < 'bhprep'`" then echo shar: error transmitting "'bhprep'" '(should have been 451 characters)' fi chmod +x 'bhprep' fi # end of overwriting check # End of shell archive exit 0 --- Cut here --- -- Ken Konecki (kenk@richp1.UUCP) "A squeegee by any other name wouldn't sound as funny"