Explanation of aligrep

[previous] [next] [table of contents] [index]

The Section Showing MH Aliases has an overview of aligrep. Here is the aligrep script (you might want to open it in a separate browser window). To install it, see the Section Programs in This Book's Archive.

The script is simple; it doesn't need to be configured. It does depend on an undocumented feature (probably just a documentation oversight) of the MH ali command: if you don't give ali any alias names, it will list all aliases. If your ali doesn't work that way, replace the last line of the script (the call to ali) with this code:

# Aliasfile pathnames are relative to MH directory
cd `mhpath +`
# Read alias file(s) and search them:
cat `mhparam aliasfile` | egrep $iopt "$pattern"
Or, if you have several alias files and you'd like egrep to display the matching filename for each alias, use the code above with this last line:
egrep $iopt "$pattern" `mhparam aliasfile`
The only part of the script that isn't straightforward is the for loop that builds the egrep search pattern $pattern. egrep can search for multiple patterns. For instance, to search for jim or smith, you'd run aligrep jim smith; the loop would make the egrep pattern (jim|smith). The loop builds the pattern piece-by-piece. In the example above, after the first pass of the loop, the pattern is (jim. There's a second command-line argument, so the next pass of the loop adds |smith to make (jim|smith. The closing parenthesis is added after the loop ends.

[Table of Contents] [Index] [Previous: Programs in This Book's Archive] [Next: Explanation of append]

Last change $Date: 1999/10/10 05:14:05 $

This file first appeared in the updated online edition of the book MH & nmh: Email for Users & Programmers, by Jerry Peek. Copyright © 1997 by Jerry Peek. This file is freely available; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation. For more information, see the file copying.htm.

Suggestions are welcome: Jerry Peek <jpeek@jpeek.com>