License – CC-BY-SA

Beware however that this refers only to parts which are obviously written by me and do not have any other information about licensing. Quoted text, pictures and other content created by others is copyrighted by the corresponding authors. If you are in doubt, ask before republishing any content.

Pages

Short Tip: egrep – using grep with more than one expression

I stumbled across an old blog post of mine about using grep with more than one expression: in the old days I used -e several times, one for each new expression. But as stressed in the comments that way is neither convenient nor reliable on ll platforms. And I have developed as well, so today I usually use egrep if I need to grep for several expressions. Thus, here are some short notes about using it.

The multiple arguments you are searching for a passed to egrep separated by pipes. For example, if you want to grep the output of lspci for all audio and video controllers, the correct command is:

( Yes, I know, I write my blog post on pretty old hardware right now😉 )

egrep does understand more than two expressions, so you can use the option like $STRING_1|$STRING_2|$STRING_3|.... But don’t forget to include the high tics ' in the command: these ensure that the pipe is used as a separator instead of being interpreted by your shell.

I’m pretty sure I’ve missed out on extended regex several times, but my man page says, “Direct invocation as either egrep or fgrep is deprecated, but is provided to allow historical applications that rely on them to run unmodified.” You might want the capital e switch with grep instead.

Oh well, I never stop learning – however, I guess the alias is the best thing since adding options is waht I want to avoid…
Thanks for pointing it out though. I guess I’ll have to write another short tip in some weeks😉