grep and anchoring

Daniël de Kok me at danieldk.eu
Sun Jun 26 14:44:47 UTC 2016


On 26 Jun 2016, at 16:34, Polytropon <freebsd at edvax.de> wrote:
> Or is this just an "enrichment" your MUA added? :-)

Yes, Mac’s Mail.app likes to replace these. I didn’t use an ellipsis in the actual expression ;), just four dots.

> 	% echo "1234 1234 1234" | egrep -o '^....'
> 	1234
> 	 123
> 	4 12
[...]
> First 4-character pattern is "1234", next is " 123",
> and last is "4 12" (each 4 characters wide, as the
> space character " " is also "any character" that matches
> the . pattern). In the second example, the groups match
> 4 characters each ("1234" x 3).

Note the anchoring (^), the pattern should only match any four characters at the beginning of the line, so the expected output is ‘1234’ and nothing more. ‘ 123' and '4 12' are not at the beginning of the line and should consequently not be printed to stdout.

For comparison, the output of a recent GNU grep:

—
%  echo "1234 1234 1234" | grep -o '^....'
1234
—

With kind regards,
Daniël de Kok


More information about the freebsd-questions mailing list