A particularly useful feature of the program is that you can use the -f option to filter the output. When a filter is used, the index program produces output in TAB-separated columns. Instead of listing each matching entry individually, the field titles are shown at the top, and each entry then appears underneath, displayed horizontally, with TABs between fields:
index -f 'sed s/Mui/Mud/' addresses PeterNAME TITLE ORGANIZATION STREET ADDRESS CITY STATE ... Henry K Smith Peter Johnson & Associates 324 Bur ... Peter Mud International Sales Manager O'Reilly and As ... Peter L. Loos President Introspective Solutions, Inc. ...
The TAB-separated fields don't line up properly on your screen, but they make it convenient to manipulate columns using , , or . For example, you can use the cut command as your filter to limit the output to a few significant fields:
index -f 'cut -f1,8,10' addresses '.'NAME VOICE PHONE NUMBER EMAIL ADDRESS Henry K Smith 617-555-1212 henry@pja Paul S. Spencer 617-693-1111 email@example.com Peter Mui 800-998-9938 firstname.lastname@example.org
'.' as the search string to match all entries.)
For your convenience, you can write up a shell script as a filter and place it in your $HOME/.index directory with a .fmt suffix. This feature comes in useful for particularly complicated filter programs. For example, if you want to be able to read the output of the previous example properly, you can try using awk as shown in article 35.22, or you can just use and . To do this in a single step, try writing a filter [Linda is a great typist; she uses to write short shell scripts (and show the script at the same time). A text editor like Emacs or vi will do fine, too, of course. -JP ]: