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


6.4 Examples of Searching

When used with grep or egrep , regular expressions should be surrounded by quotes. (If the pattern contains a $ , you must use single quotes; e.g., ' pattern ' .) When used with ed , ex , sed , and awk , regular expressions are usually surrounded by / , although (except for awk ) any delimiter works. The following tables show some example patterns.

6.4.1 General patterns

Pattern What Does It Match?
bag The string bag .
^bag bag at the beginning of the line.
bag$ bag at the end of the line.
^bag$ bag as the only word on the line.
[Bb]ag Bag or bag .
b[aeiou]g Second letter is a vowel.
b[^aeiou]g

Second letter is a consonant (or uppercase or symbol).

b.g

Second letter is any character.

^...$

Any line containing exactly three characters.

^\.

Any line that begins with a dot.

^\.[a-z][a-z]

Same, followed by two lowercase letters (e.g., troff requests).

^\.[a-z]\{2\}

Same as previous; ed , grep , and sed only.

^[^.]

Any line that doesn't begin with a dot.

bugs*

bug , bugs , bugss , etc.

"word"

A word in quotes.

"*word"*

A word, with or without quotes.

[A-Z][A-Z]*

One or more uppercase letters.

[A-Z]+

Same; egrep or awk only.

[[:upper:]]+

Same; POSIX egrep or awk .

[A-Z].*

An uppercase letter, followed by zero or more characters.

[A-Z]*

Zero or more uppercase letters.

[a-zA-Z] Any letter.
[^0-9A-Za-z]

Any symbol or space (not a letter or a number).

[^[:alnum:]]

Same, using POSIX character class.

6.4.2 Egrep and awk patterns

egrep or awk Pattern What Does It Match?
[567] One of the numbers 5 , 6 , or 7 .
five|six|seven One of the words five , six , or seven .
80[2-4]?86

8086 , 80286 , 80386 , or 80486 .

80[2-4]?86|(Pentium(-II)?)

8086 , 80286 , 80386 , 80486 , Pentium , or Pentium-II .

compan(y|ies) company or companies .

6.4.3 Ex and vi patterns

ex or vi Pattern What Does It Match?
\<the Words like theater or the .
the\> Words like breathe or the .
\<the\> The word the .

6.4.4 Ed, sed and grep patterns

ed, sed or grep Pattern What Does It Match?
0\{5,\}

Five or more zeros in a row.

[0-9]\{3\}-[0-9]\{2\}-[0-9]\{4\}

U.S. Social Security number (nnn -nn -nnnn ).

\(why\).*\1

A line with two occurrences of why .

\([[:alpha:]_][[:alnum:]_.]*\) = \1;

C/C++ simple assignment statements.

6.4.5 Examples of Searching and Replacing

The examples in Table 6.3 show the metacharacters available to sed or ex . Note that ex commands begin with a colon. A space is marked by a  ; a tab is marked by a tab .


Table 6.3: Searching and Replacing
Command Result
s/.*/( & )/

Redo the entire line, but add parentheses.

s/.*/mv & &.old/

Change a wordlist (one word per line) into mv commands.

/^$/d

Delete blank lines.

:g/^$/d

Same as previous, in ex editor.

/^[ tab ]*$/d

Delete blank lines, plus lines containing only spaces or tabs.

:g/^[ tab ]*$/d

Same as previous, in ex editor.

s/  */ /g

Turn one or more spaces into one space.

:%s/  */ /g

Same as previous, in ex editor.

:s/[0-9]/Item &:/

Turn a number into an item label (on the current line).

:s

Repeat the substitution on the first occurrence.

:&

Same as previous.

:sg

Same, but for all occurrences on the line.

:&g

Same as previous.

:%&g

Repeat the substitution globally (i.e., on all lines).

:.,$s/Fortran/\U&/g

On current line to last line, change word to uppercase.

:%s/.*/\L&/

Lowercase entire file.

:s/\<./\u&/g

Uppercase first letter of each word on current line. (Useful for titles.)

:%s/yes/No/g

Globally change a word to No .

:%s/Yes/~/g

Globally change a different word to No (previous replacement).

Finally, some sed examples for transposing words. A simple transposition of two words might look like this:

s/die or do/do or die/		 Transpose words

The real trick is to use hold buffers to transpose variable patterns. For example:

s/\([Dd]ie\) or \([Dd]o\)/\2 or \1/	 Transpose, using hold buffers


Previous: 6.3 Metacharacters UNIX in a Nutshell: System V Edition Next: 7. The Emacs Editor
6.3 Metacharacters Book Index 7. The Emacs Editor

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