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:
$ lspci|egrep -i 'audio|vga' 00:05.0 Audio device: NVIDIA Corporation MCP61 High Definition Audio (rev a2) 00:0d.0 VGA compatible controller: NVIDIA Corporation C61 [GeForce 6150SE nForce 430] (rev a2)
( 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.