Grep: Difference between revisions
No edit summary |
No edit summary |
||
Line 36: | Line 36: | ||
</pre> | </pre> | ||
=Recipes= | |||
==Including TWO expressions at the same time== | |||
<pre> | |||
cat /proc/cpuinfo | grep 'processor\|siblings' | cat /proc/cpuinfo | grep 'processor\|siblings' | ||
Line 45: | Line 47: | ||
processor : 1 | processor : 1 | ||
siblings : 2 | siblings : 2 | ||
</pre> | |||
The method works even if there are spaces and other regular expression characters within the alternative regexes: | The method works even if there are spaces and other regular expression characters within the alternative regexes: | ||
<pre> | |||
... | grep ' logger: [1-9]\+\.\|(concurrent mode failure)' | ... | grep ' logger: [1-9]\+\.\|(concurrent mode failure)' | ||
</pre> | |||
This will select either "logger: [1-9]\+\." or "(concurrent mode failure)" | |||
==Excluding TWO expressions at the same time== | |||
{{{ | {{{ |
Revision as of 03:04, 16 February 2016
Internal
Overview
grep accepts regular expressions. Both " " and ' ' can be used to enclose the expression to search for.
If the expression is found, the enclosing lines are sent to stdout the command returns 0 (success).
If the expression is NOT found, the command returns 1 (failure).
if grep -q "some regex" ./file.txt; then # do something if expression is found else # do something else if the expression is not found fi
Regular Expressions
^ - beginning of line $ - end of line \t - tab [0-9]* \. dot
Recipes
Including TWO expressions at the same time
cat /proc/cpuinfo | grep 'processor\|siblings' processor : 0 siblings : 2 processor : 1 siblings : 2
The method works even if there are spaces and other regular expression characters within the alternative regexes:
... | grep ' logger: [1-9]\+\.\|(concurrent mode failure)'
This will select either "logger: [1-9]\+\." or "(concurrent mode failure)"
Excluding TWO expressions at the same time
grep -v "blah"
!!!Do not Send Anything to stout
... and avoid > /dev/null:
{{{
grep -q
}}}
!!!--color
{{{ grep --color 'context.layer=' }}}
!!!-n
Prefixes the line with the line number.
See [sed#InsertALineAppendInASpecificPositionLineNumberInAFile]
!!!Characters that Need Escaping
Same as [sed#SpecialCharactersNeedToBeEscapedInRegularExpressions]
!!!Return Only the First Match
{{{ -m 1 }}}
__Referenced by:__\\
[{INSERT com.ecyrd.jspwiki.plugin.ReferringPagesPlugin WHERE max=20, maxwidth=50}]