(My brand new login - first time reporting a bug - apologies if...) grep'ping for a byte offset always returns 0 for the result. Searching "FreeBSD Bugzilla – Bug List" shows no other reports. Ubuntu 16.04: jonesy@nix5:~$ a='now is the time for all good men to come to the aid of the party' jonesy@nix5:~$ echo $a | grep -b -o good 24:good FreeBSD 12.1 [jonz~]a='now is the time for all good men to come to the aid of the party' [jonz~]echo $a | grep -b -o good 0:good
(In reply to Marvin Jones from comment #0) /usr/bin/grep in 13-current has the same bug. gnugrep in ports/textproc works fine.
Thank you for the report. I build WITH_BSD_GREP and it doesn't have this problem: % grep --version grep (BSD grep) 2.6.0-FreeBSD % a='now is the time for all good men to come to the aid of the party' % echo $a | grep -b -o good 24:good The most likely fix for this in FreeBSD is to wrap up the rest of the work to make BSD_GREP the default.
Take, as this will go away with our future gnugrep retirement party. I do recommend using bsdgrep if you specifically need a grep in base (and don't particularly need GNU extensions), or installing textproc/gnugrep for a less buggy version of a grep with GNU extensions.
A commit references this bug: Author: kevans Date: Tue Dec 8 14:05:27 UTC 2020 New revision: 368439 URL: https://svnweb.freebsd.org/changeset/base/368439 Log: src.opts.mk: switch to bsdgrep as /usr/bin/grep This has been years in the making, and we all knew it was bound to happen some day. Switch to the BSDL grep implementation now that it's been a little more thoroughly tested and theoretically supports all of the extensions that gnugrep in base had with our libregex(3). Folks shouldn't really notice much from this update; bsdgrep is slower than gnugrep, but this is currently the price to pay for fewer bugs. Those dissatisfied with the speed of grep and in need of a faster implementation should check out what textproc/ripgrep and textproc/the_silver_searcher can do for them. I have some WIP to make bsdgrep faster, but do not consider it a blocker when compared to the pros of switching now (aforementioned bugs, licensing). PR: 228798 (exp-run) PR: 128645, 156704, 166842, 166862, 180937, 193835, 201650 PR: 232565, 242308, 246000, 251081, 191086, 194397 Relnotes: yes, please Changes: head/share/mk/src.opts.mk
The bug is still there on 12.4-STABLE which uses GNU grep 2.5.1. BSD grep and later versions of GNU grep (at least since 2.10) are good. It is unlikely that GNU grep would be updated in 12.x branch which EoLs on 31 December 2023 (we could close this PR after that).