## 21.5. Remove Mail/News Headers with behead

When you're saving or resending a Usenet article or mail message, you might want to the remove header lines (Subject:, Received:, and so on). This little script will handle standard input, one or many files. It writes to standard output. Here are a few examples:

- With saved messages, at a shell prompt:

`mail` Section 1.21

>     % behead msg* | mail -s "Did you see these?" fredf

- To save an article from a pipe without a header, from a program (here, the old readnews) that can't cut off headers itself:

  >     What now? [ynq] s- | behead > filename

Here's the script, adapted a little from the original by Arthur David Olson:

Go to http://examples.oreilly.com/upt3 for more information on: behead

>     #! /bin/sh
>     case $# in
>     0)  exec sed '1,/^$/d' ;;
>     *)  for i
>         do sed '1,/^$/d' "$i"
>         done
>         ;;
>     esac

The script relies on the fact that news articles and mail messages use a blank line to separate the header from the body of the message. As a result, the script simply deletes the text from the beginning up to the first blank line.

-- JP

Copyright © 2003 O'Reilly & Associates. All rights reserved.