On 01/03/12 03:18, Voelker, Bernhard wrote:
> +The empty expression matches any string

Thanks for reporting the problem.  The fix is not quite right,
though, as strictly speaking the empty expression matches
only the empty string.

Here's a proposed patch that tries to address the problem better:

>From cb0745b1fec8f050567ab6a2dc5b68d2c55827a2 Mon Sep 17 00:00:00 2001
From: Paul Eggert <[email protected]>
Date: Tue, 3 Jan 2012 10:09:51 -0800
Subject: [PATCH] doc: document empty pattern better

* doc/grep.texi (Top, Fundamental Structure, Usage):
Explain how grep deals with the empty pattern.
Problem spotted by Bernhard Voelker in
<http://lists.gnu.org/archive/html/bug-grep/2012-01/msg00050.html>.
---
 doc/grep.texi |   15 ++++++++++++++-
 1 files changed, 14 insertions(+), 1 deletions(-)

diff --git a/doc/grep.texi b/doc/grep.texi
index 537237f..25019b4 100644
--- a/doc/grep.texi
+++ b/doc/grep.texi
@@ -50,7 +50,7 @@ Texts.  A copy of the license is included in the section 
entitled
 @node Top
 @top grep
 
-@command{grep} prints lines that match a pattern.
+@command{grep} prints lines that contain a match for a pattern.
 
 This manual is for version @value{VERSION} of GNU Grep.
 
@@ -1162,6 +1162,7 @@ The preceding item is matched at least @var{n} times, but 
not more than
 
 @end table
 
+The empty regular expression matches the empty string.
 Two regular expressions may be concatenated;
 the resulting regular expression
 matches any string formed by concatenating two substrings
@@ -1621,6 +1622,18 @@ grep 'paul' /etc/motd | grep 'franc,ois'
 finds all lines that contain both @samp{paul} and @samp{franc,ois}.
 
 @item
+Why does the empty pattern match every input line?
+
+The @command{grep} command searches for lines that contain strings
+that match a pattern.  Every line contains the empty string, so an
+empty pattern causes @command{grep} to find a match on each line.  It
+is not the only such pattern: @samp{^}, @samp{$}, @samp{.*}, and many
+other patterns cause @command{grep} to match every line.
+
+To specify a pattern that matches none of the input lines, use
+@samp{grep -f /dev/null}.
+
+@item
 How can I search in both standard input and in files?
 
 Use the special file name @samp{-}:
-- 
1.7.6.4


Reply via email to