Grep: Difference between revisions

From wikinotes
No edit summary
Line 27: Line 27:
</source>
</source>
</blockquote><!-- Usage -->
</blockquote><!-- Usage -->
= Regex =
<blockquote>
== Perl ==
<blockquote>
only available in gnu grep via <code>-P</code>, this supports lookahead/lookbehind.
<syntaxhighlight lang="bash">
xrandr | grep -P '(?<!dis)connected'  # negative lookbehind
xrandr | grep -P '(?<=dis)connected'  # positive lookehind
</syntaxhighlight>
</blockquote><!-- Perl  -->
</blockquote><!-- Regex -->

Revision as of 01:51, 19 July 2021

Search file contents.

Documentation

man grep https://manpages.debian.org/buster/grep/grep.1.en.html

Usage

grep <dir> \
  -C3  `# show 3x lines before/after each match` \
  -l   `# show only matched files` \
  -i   `# case insensitive search` \
  -v   `# lines-not matching` \
  -E   `# extended regex` \
  -P   `# (gnu-only) perl extended regex (supports lookahead/behind)` \

multiline grep

grep -Pzo 'def[^\n]+\n\tfoo'

Regex

Perl

only available in gnu grep via -P, this supports lookahead/lookbehind.

xrandr | grep -P '(?<!dis)connected'   # negative lookbehind
xrandr | grep -P '(?<=dis)connected'   # positive lookehind