summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Eggert <eggert@cs.ucla.edu>2016-04-05 23:53:30 -0700
committerPaul Eggert <eggert@cs.ucla.edu>2016-04-05 23:54:05 -0700
commit2ba6ab34da05d3aebc5e7e3dfaedb1cf3ddc5a73 (patch)
treed52b413366c77b622900b4ee887bf8d52f9089d0
parent7f4e28a8634e1057b9239683e68ca12dd3ff1581 (diff)
downloadgrep-2ba6ab34da05d3aebc5e7e3dfaedb1cf3ddc5a73.tar.gz
Give another example of binary file processing
Problem reported by Shlomi Fish * doc/grep.texi (File and Directory Selection): Document that 'q$' might match 'q' followed by a NUL if --binary-files=binary is in effect.
-rw-r--r--doc/grep.texi14
1 files changed, 10 insertions, 4 deletions
diff --git a/doc/grep.texi b/doc/grep.texi
index 074113b7..1d3d5cb0 100644
--- a/doc/grep.texi
+++ b/doc/grep.texi
@@ -607,10 +607,6 @@ By default, @var{type} is @samp{binary}, and when @command{grep}
discovers that a file is binary it suppresses any further output, and
instead outputs either a one-line message saying that a binary file
matches, or no message if there is no match.
-When processing binary data, @command{grep} may treat non-text bytes
-as line terminators; for example, the pattern @samp{.} (period) might
-not match a null byte, as the null byte might be treated as a line
-terminator even without the @option{-z} (@option{--null-data}) option.
If @var{type} is @samp{without-match},
when @command{grep} discovers that a file is binary
@@ -621,6 +617,16 @@ If @var{type} is @samp{text},
@command{grep} processes a binary file as if it were text;
this is equivalent to the @option{-a} option.
+When @var{type} is @samp{binary}, @command{grep} may treat non-text
+bytes as line terminators even without the @option{-z}
+(@option{--null-data}) option. This means choosing @samp{binary}
+versus @samp{text} can affect whether a pattern matches a file. For
+example, when @var{type} is @samp{binary} the pattern @samp{q$} might
+match @samp{q} immediately followed by a null byte, even though this
+is not matched when @var{type} is @samp{text}. Conversely, when
+@var{type} is @samp{binary} the pattern @samp{.} (period) might not
+match a null byte.
+
@emph{Warning:} @samp{--binary-files=text} might output binary garbage,
which can have nasty side effects
if the output is a terminal and