[ANNOUNCEMENT] Upgraded: grep 3.8

Cygwin grep Co-Maintainer Brian.Inglis@SystematicSW.ab.ca
Sun Oct 2 21:55:59 GMT 2022

The following package has been upgraded in the Cygwin distribution:

* grep	3.8

GNU grep searches one or more input files for lines containing a match
to a specified pattern. By default, grep outputs the matching lines. The
GNU implementation includes several useful extensions over POSIX.

For more information see the project home pages:


For changes since the previous Cygwin release please see below or read
/usr/share/doc/grep/NEWS after installation; for complete details see:


The change note below states that egrep and fgrep are deprecated
obsolescent commands, will be dropped in future, and from this release
until then, every use will show a stderr warning message, reminding you
how to change your commands and scripts:

	$ egrep ...
	egrep: warning: egrep is obsolescent; using grep -E
	$ fgrep ...
	fgrep: warning: fgrep is obsolescent; using grep -F

Other usages documented below also now generate stderr warning or
error messages e.g.

	grep: warning: * at start of expression
	grep: warning: ? at start of expression
	grep: warning: + at start of expression
	grep: warning: {...} at start of expression
	grep: warning: stray \ before <CHAR>
	grep: warning: stray \ before unprintable character
	grep: warning: stray \ before white space

Please CC any issues also to the maintainer due to ISP blocking.
This package was released as test a few weeks ago to allow any impacts
to be evaluated and mitigated.

Noteworthy changes in release 3.8 (2022-09-02) [stable]

Changes in behavior

* The -P option is now based on PCRE2 instead of the older PCRE,
  thanks to code contributed by Carlo Arenas.

* The egrep and fgrep commands, which have been deprecated since
  release 2.5.3 (2007), now warn that they are obsolescent and should
  be replaced by grep -E and grep -F.

* The confusing GREP_COLOR environment variable is now obsolescent.
  Instead of GREP_COLOR='xxx', use GREP_COLORS='mt=xxx'. grep now
  warns if GREP_COLOR is used and is not overridden by GREP_COLORS.
  Also, grep now treats GREP_COLOR like GREP_COLORS by silently
  ignoring it if it attempts to inject ANSI terminal escapes.

* Regular expressions with stray backslashes now cause warnings, as
  their unspecified behavior can lead to unexpected results.
  For example, '\a' and 'a' are not always equivalent.
  Similarly, regular expressions or subexpressions that start with a
  repetition operator now also cause warnings due to their unspecified
  behavior; for example, *a(+b|{1}c) now has three reasons to warn.
  The warnings are intended as a transition aid; they are likely to be
  errors in future releases.

* Regular expressions like [:space:] are now errors even if
  POSIXLY_CORRECT is set, since POSIX now allows the GNU behavior.

Bug fixes

* In locales using UTF-8 encoding, the regular expression '.' no
  longer sometimes fails to match Unicode characters U+D400 through
  U+D7FF (some Hangul Syllables, and Hangul Jamo Extended-B) and
  Unicode characters U+108000 through U+10FFFF (half of Supplemental
  Private Use Area plane B).
  [bug introduced in grep 3.4]

* The -s option no longer suppresses "binary file matches" messages.
  [Bug#51860 introduced in grep 3.5]

Documentation improvements

* The manual now covers unspecified behavior in patterns like \x, (+),
  and range expressions outside the POSIX locale.

More information about the Cygwin mailing list