views:

43

answers:

5

One of my homework questions is to search using grep an lines that contain the word 'death' or 'breath'.

I know the [] operator acts as an or, but how do I use it to specify 'd' or 'br' ?

This won't work:

egrep [dbr]eath test_file
+1  A: 

The "|" operator (vertical bar) acts as an "or". However:

grep 'breath|death' test_file

What you wrote would find "death", "beath", and "reath".

Pointy
+1  A: 

egrep '(d|br)eath' test_file

Paul Tomblin
Thank you. Works.
xbonez
A: 

Study up on "alternation" and you'll figure it out.

LVB
+2  A: 

(d|br) is for either d or br.

The square brackets are for matching a single character from square brackets.

For example: [asdf]ello would match aello, sello, dello, or fello.

birryree
A: 

egrep is FYI, deprecated. Use grep -E

grep -E '(d|br)eath' file
ghostdog74