Upgraded: grep 3.9

Cygwin grep Co-Maintainer Brian.Inglis@Shaw.ca
Mon Mar 6 21:32:55 GMT 2023

The following package has been upgraded in the Cygwin distribution:

* grep	3.9

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.

The previous release stated 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

Cygwin releases will suppress the egrep and fgrep warning messages, but
developers and maintainers should rigorously remove all such usages from
their practices and scripts, as those commands could be dropped, or any
warning messages could be treated as fatal errors, in future.

Other invalid usages documented previously 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

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:


Noteworthy changes in release 3.9 (2023-03-05) [stable]

* Bug fixes

  With -P, some non-ASCII UTF8 characters were not recognized as
  word-constituent due to our omission of the PCRE2_UCP flag. E.g.,
  given f(){ echo Perú|LC_ALL=en_US.UTF-8 grep -Po "$1"; } and
  this command, echo $(f 'r\w'):$(f '.\b'), before it would print ":r".
  After the fix, it prints the correct results: "rú:ú".

  When given multiple patterns the last of which has a back-reference,
  grep no longer sometimes mistakenly matches lines in some cases.
  [Bug#36148#13 introduced in grep 3.4]

More information about the Cygwin-announce mailing list