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


UNIX in a Nutshell: System V Edition

UNIX in a Nutshell: System V EditionSearch this book
Previous: II. Text Editing and Processing Chapter 6 Next: 6.2 Metacharacters, Listed by Unix Program
 

6. Pattern Matching

A number of Unix text-processing utilities let you search for, and in some cases change, text patterns rather than fixed strings. These utilities include the editing programs ed , ex , vi , and sed , the awk programming language, and the commands grep and egrep . Text patterns (formally called regular expressions) contain normal characters mixed with special characters (called metacharacters).

This chapter presents the following topics:

  • Filenames versus patterns

  • List of metacharacters available to each program

  • Description of metacharacters

  • Examples

For more information on regular expressions, see Mastering Regular Expressions , listed in the Bibliography.

6.1 Filenames Versus Patterns

Metacharacters used in pattern matching are different from metacharacters used for filename expansion (see Chapter 4, The Bourne Shell and Korn Shell , and Chapter 5, The C Shell ). When you issue a command on the command line, special characters are seen first by the shell, then by the program; therefore, unquoted metacharacters are interpreted by the shell for filename expansion. The command:

$ grep [A-Z]* chap[12]

could, for example, be transformed by the shell into:

$ grep Array.c Bug.c Comp.c chap1 chap2

and would then try to find the pattern Array.c in files Bug.c , Comp.c , chap1 , and chap2 . To bypass the shell and pass the special characters to grep , use quotes:

$ grep "[A-Z]*" chap[12]

Double quotes suffice in most cases, but single quotes are the safest bet.

Note also that in pattern matching, ? matches zero or one instance of a regular expression; in filename expansion, ? matches a single character.


Previous: II. Text Editing and Processing UNIX in a Nutshell: System V Edition Next: 6.2 Metacharacters, Listed by Unix Program
II. Text Editing and Processing Book Index 6.2 Metacharacters, Listed by Unix Program

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