What does this command do?
grep "\bi\b" linux.txt
What is it searching for?
Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems. It only takes a minute to sign up.
Sign up to join this community\b
in a regular expression means "word boundary".
With this grep command, you are searching for all words i
in the file linux.txt
. i
can be at the beginning of a line or at the end, or between two space characters in a sentence.
-w
--word-regexp
switch does: grep -w "i" linux.txt
. For example a line like "<i>italic</i>" also matches.
Oct 17, 2011 at 6:48
The \b
(word boundary) anchor can be used in place of \<
and \>
to signify the beginning or end of a word.
If this is the content of a file
:
Hi
this
is test file
to carry out few regular expressions
Then:
$ grep -e '\breg' file to carry out few regular expressions
Note about \b
, \<
, \>
:
When used inside quotes (""
or ''
), \b
and \<
,\>
work as word boundaries, as explained above.
When quotes are not used, \\b
has to be used instead of \b
.
Examples:
grep i
works but does not find whole words only
grep \bi\b
does not work
grep \\bi\\b
works
grep "\bi\b"
works and it is the same as grep "\<i\>"
\<...\>
and\b...\b
: `You can get unexpected results if you assume the two patterns behave the same... see this link