Grep: Difference between revisions

From NovaOrdis Knowledge Base
Jump to navigation Jump to search
No edit summary
No edit summary
Line 36: Line 36:
</pre>
</pre>


!!!Including TWO expressions at the same time
=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)"
 


This will select either "logger: [1-9]\+\." or "(concurrent mode failure)"


!!!Excluding TWO expressions at the same time
==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}]