home | O'Reilly's CD bookshelfs | FreeBSD | Linux | Cisco | Cisco Exam  


UNIX Power Tools

UNIX Power ToolsSearch this book
Previous: 27.14 Compound Searches Chapter 27
Searching Through Files
Next: 27.16 Faking Case-Insensitive Searches
 

27.15 Narrowing a Search Quickly

If you're searching a long file to find a particular word or name, or you're running a program like ls -l and you want to filter some lines, here's a quick way to narrow down the search. As an example, say your phone file has 20,000 lines like these:

Smith, Nancy:MFG:50 Park Place:Huntsville:(205)234-5678

and you want to find someone named Nancy. When you see more information, you know you can find which of the Nancys she is:

% grep Nancy phones


...150 lines of names...

Use the C shell's history mechanism (11.2 ) and sed (34.24 ) to cut out lines you don't want. For example, about a third of the Nancys are in Huntsville, and you know she doesn't work there:

% !! | sed -e /Huntsville/d


grep Nancy phones | sed -e /Huntsville/d
...100 lines of names...

The shell shows the command it's executing: the previous command (!! ) piped to sed , which deletes lines in the grep output that have the word Huntsville .

Okay. You know Nancy doesn't work in the MFG or SLS groups, so delete those lines, too:

% !! -e /MFG/d -e /SLS/d


grep Nancy phones | sed -e /Huntsville/d -e /MFG/d -e /SLS/d
...20 lines of names...

Keep using !! to repeat the previous command line, and adding more sed expressions, until the list gets short enough. The same thing works for other commands - when you're hunting for errors in uulog (1.33 ) output, for example, and you want to skip lines with SUCCEEDED and OK :

% uulog | sed -e /SUCCEEDED/d -e /OK/d


...

If the matching pattern has anything but letters and numbers in it, you'll have to understand shell quoting (8.14 ) and sed regular expressions (26.4 ) . Most times, though, this quick-and-dirty way works just fine.

- JP


Previous: 27.14 Compound Searches UNIX Power Tools Next: 27.16 Faking Case-Insensitive Searches
27.14 Compound Searches Book Index 27.16 Faking Case-Insensitive Searches

The UNIX CD Bookshelf NavigationThe UNIX CD BookshelfUNIX Power ToolsUNIX in a NutshellLearning the vi Editorsed & awkLearning the Korn ShellLearning the UNIX Operating System