| 1 | Version 2.5.1
 | 
|---|
| 2 |   - This is a bugfix release. No new features.
 | 
|---|
| 3 | 
 | 
|---|
| 4 | Version 2.5
 | 
|---|
| 5 |   - The new option --label allows to specify a different name for input
 | 
|---|
| 6 |     from stdin. See the man or info pages for details.
 | 
|---|
| 7 | 
 | 
|---|
| 8 |   - The internal lib/getopt* files are no longer used on systems providing
 | 
|---|
| 9 |     getopt functionality in their libc (e.g. glibc 2.2.x).
 | 
|---|
| 10 |     If you need the old getopt files, use --with-included-getopt.
 | 
|---|
| 11 | 
 | 
|---|
| 12 |   - The new option --only-matching (-o) will print only the part of matching
 | 
|---|
| 13 |     lines that matches the pattern. This is useful, for example, to extract
 | 
|---|
| 14 |     IP addresses from log files.
 | 
|---|
| 15 | 
 | 
|---|
| 16 |   - i18n bug fixed ([A-Z0-9] wouldn't match A in locales other than C on
 | 
|---|
| 17 |     systems using recent glibc builds
 | 
|---|
| 18 | 
 | 
|---|
| 19 |   - GNU grep can now be built with autoconf 2.52.
 | 
|---|
| 20 | 
 | 
|---|
| 21 |   - The new option --devices controls how grep handles device files. Its usage
 | 
|---|
| 22 |     is analogous to --directories.
 | 
|---|
| 23 | 
 | 
|---|
| 24 |   - The new option --line-buffered fflush on everyline.  There is a noticeable
 | 
|---|
| 25 |     slow down when forcing line buffering.
 | 
|---|
| 26 | 
 | 
|---|
| 27 |   - Back references  are now local to the regex.
 | 
|---|
| 28 |     grep -e '\(a\)\1' -e '\(b\)\1'
 | 
|---|
| 29 |     The last backref \1 in the second expression refer to \(b\)
 | 
|---|
| 30 | 
 | 
|---|
| 31 |   - The new option --include=PATTERN will only search matching files
 | 
|---|
| 32 |     when recursing in directories
 | 
|---|
| 33 | 
 | 
|---|
| 34 |   - The new option --exclude=PATTERN will skip matching files when
 | 
|---|
| 35 |     recursing in directories.
 | 
|---|
| 36 | 
 | 
|---|
| 37 |   - The new option --color will use the environment variable GREP_COLOR
 | 
|---|
| 38 |     (default is red) to highlight the matching string.
 | 
|---|
| 39 |     --color takes an optional argument specifying when to colorize a line:
 | 
|---|
| 40 |       --color=always, --color=tty, --color=never
 | 
|---|
| 41 | 
 | 
|---|
| 42 |   - The following changes are for POSIX.2 conformance:
 | 
|---|
| 43 | 
 | 
|---|
| 44 |     . The -q or --quiet or --silent option now causes grep to exit
 | 
|---|
| 45 |       with zero status when a input line is selected, even if an error
 | 
|---|
| 46 |       also occurs.
 | 
|---|
| 47 | 
 | 
|---|
| 48 |     . The -s or --no-messages option no longer affects the exit status.
 | 
|---|
| 49 | 
 | 
|---|
| 50 |     . Bracket regular expressions like [a-z] are now locale-dependent.
 | 
|---|
| 51 |       For example, many locales sort characters in dictionary order,
 | 
|---|
| 52 |       and in these locales the regular expression [a-d] is not
 | 
|---|
| 53 |       equivalent to [abcd]; it might be equivalent to [aBbCcDd], for
 | 
|---|
| 54 |       example.  To obtain the traditional interpretation of bracket
 | 
|---|
| 55 |       expressions, you can use the C locale by setting the LC_ALL
 | 
|---|
| 56 |       environment variable to the value "C".
 | 
|---|
| 57 | 
 | 
|---|
| 58 |   - The -C or --context option now requires an argument, partly for
 | 
|---|
| 59 |     consistency, and partly because POSIX.2 recommends against
 | 
|---|
| 60 |     optional arguments.
 | 
|---|
| 61 | 
 | 
|---|
| 62 |   - The new -P or --perl-regexp option tells grep to interpert the pattern as
 | 
|---|
| 63 |     a Perl regular expression.
 | 
|---|
| 64 | 
 | 
|---|
| 65 |   - The new option --max-count=num makes grep stop reading a file after num
 | 
|---|
| 66 |     matching lines.
 | 
|---|
| 67 |     New option -m; equivalent to --max-count.
 | 
|---|
| 68 | 
 | 
|---|
| 69 |   - Translations for bg, ca, da, nb and tr have been added.
 | 
|---|
| 70 | 
 | 
|---|
| 71 | Version 2.4.2
 | 
|---|
| 72 | 
 | 
|---|
| 73 |   - Added more check in configure to default the grep-${version}/src/regex.c
 | 
|---|
| 74 |     instead of the one in GNU Lib C.
 | 
|---|
| 75 | 
 | 
|---|
| 76 | Version 2.4.1
 | 
|---|
| 77 | 
 | 
|---|
| 78 |   - If the final byte of an input file is not a newline, grep now silently
 | 
|---|
| 79 |     supplies one.
 | 
|---|
| 80 | 
 | 
|---|
| 81 |   - The new option --binary-files=TYPE makes grep assume that a binary input
 | 
|---|
| 82 |     file is of type TYPE.
 | 
|---|
| 83 |     --binary-files='binary' (the default) outputs a 1-line summary of matches.
 | 
|---|
| 84 |     --binary-files='without-match' assumes binary files do not match.
 | 
|---|
| 85 |     --binary-files='text' treats binary files as text
 | 
|---|
| 86 |         (equivalent to the -a or --text option).
 | 
|---|
| 87 | 
 | 
|---|
| 88 |   - New option -I; equivalent to --binary-files='without-match'.
 | 
|---|
| 89 | 
 | 
|---|
| 90 | Version 2.4:
 | 
|---|
| 91 | 
 | 
|---|
| 92 |   - egrep is now equivalent to `grep -E' as required by POSIX,
 | 
|---|
| 93 |     removing a longstanding source of confusion and incompatibility.
 | 
|---|
| 94 |     `grep' is now more forgiving about stray `{'s, for backward
 | 
|---|
| 95 |     compatibility with traditional egrep.
 | 
|---|
| 96 | 
 | 
|---|
| 97 |   - The lower bound of an interval is not optional.
 | 
|---|
| 98 |     You must use an explicit zero, e.g. `x{0,10}' instead of `x{,10}'.
 | 
|---|
| 99 |     (The old documentation incorrectly claimed that it was optional.)
 | 
|---|
| 100 | 
 | 
|---|
| 101 |   - The --revert-match option has been renamed to --invert-match.
 | 
|---|
| 102 | 
 | 
|---|
| 103 |   - The --fixed-regexp option has been renamed to --fixed-string.
 | 
|---|
| 104 | 
 | 
|---|
| 105 |   - New option -H or --with-filename.
 | 
|---|
| 106 | 
 | 
|---|
| 107 |   - New option --mmap.  By default, GNU grep now uses read instead of mmap.
 | 
|---|
| 108 |     This is faster on some hosts, and is safer on all.
 | 
|---|
| 109 | 
 | 
|---|
| 110 |   - The new option -z or --null-data causes `grep' to treat a zero byte
 | 
|---|
| 111 |     (the ASCII NUL character) as a line terminator in input data, and
 | 
|---|
| 112 |     to treat newlines as ordinary data.
 | 
|---|
| 113 | 
 | 
|---|
| 114 |   - The new option -Z or --null causes `grep' to output a zero byte
 | 
|---|
| 115 |     instead of the normal separator after a file name.
 | 
|---|
| 116 | 
 | 
|---|
| 117 |   - These two options can be used with commands like `find -print0',
 | 
|---|
| 118 |     `perl -0', `sort -z', and `xargs -0' to process arbitrary file names,
 | 
|---|
| 119 |     even those that contain newlines.
 | 
|---|
| 120 | 
 | 
|---|
| 121 |   - The environment variable GREP_OPTIONS specifies default options;
 | 
|---|
| 122 |     e.g. GREP_OPTIONS='--directories=skip' reestablishes grep 2.1's
 | 
|---|
| 123 |     behavior of silently skipping directories.
 | 
|---|
| 124 | 
 | 
|---|
| 125 |   - You can specify a matcher multiple times without error, e.g.
 | 
|---|
| 126 |     `grep -E -E' or `fgrep -F'.  It is still an error to specify
 | 
|---|
| 127 |     conflicting matchers.
 | 
|---|
| 128 | 
 | 
|---|
| 129 |   - -u and -U are now allowed on non-DOS hosts, and have no effect.
 | 
|---|
| 130 | 
 | 
|---|
| 131 |   - Modifications of the tests scripts to go around the "Broken Pipe"
 | 
|---|
| 132 |     errors from bash. See Bash FAQ.
 | 
|---|
| 133 | 
 | 
|---|
| 134 |   - New option -r or --recursive or --directories=recurse.
 | 
|---|
| 135 |     (This option was also in grep 2.3, but wasn't announced here.)
 | 
|---|
| 136 | 
 | 
|---|
| 137 |   - --without-included-regex disable, was causing bogus reports .i.e
 | 
|---|
| 138 |     doing more harm then good.
 | 
|---|
| 139 | 
 | 
|---|
| 140 | Version 2.3:
 | 
|---|
| 141 | 
 | 
|---|
| 142 |   - When searching a binary file FOO, grep now just reports
 | 
|---|
| 143 |     `Binary file FOO matches' instead of outputting binary data.
 | 
|---|
| 144 |     This is typically more useful than the old behavior,
 | 
|---|
| 145 |     and it is also more consistent with other utilities like `diff'.
 | 
|---|
| 146 |     A file is considered to be binary if it contains a NUL (i.e. zero) byte.
 | 
|---|
| 147 | 
 | 
|---|
| 148 |     The new -a or --text option causes `grep' to assume that all
 | 
|---|
| 149 |     input is text.  (This option has the same meaning as with `diff'.)
 | 
|---|
| 150 |     Use it if you want binary data in your output.
 | 
|---|
| 151 | 
 | 
|---|
| 152 |   - `grep' now searches directories just like ordinary files; it no longer
 | 
|---|
| 153 |     silently skips directories.  This is the traditional behavior of
 | 
|---|
| 154 |     Unix text utilities (in particular, of traditional `grep').
 | 
|---|
| 155 |     Hence `grep PATTERN DIRECTORY' should report
 | 
|---|
| 156 |     `grep: DIRECTORY: Is a directory' on hosts where the operating system
 | 
|---|
| 157 |     does not permit programs to read directories directly, and
 | 
|---|
| 158 |     `grep: DIRECTORY: Binary file matches' (or nothing) otherwise.
 | 
|---|
| 159 | 
 | 
|---|
| 160 |     The new -d ACTION or --directories=ACTION option affects directory handling.
 | 
|---|
| 161 |     `-d skip' causes `grep' to silently skip directories, as in grep 2.1;
 | 
|---|
| 162 |     `-d read' (the default) causes `grep' to read directories if possible,
 | 
|---|
| 163 |     as in earlier versions of grep.
 | 
|---|
| 164 | 
 | 
|---|
| 165 |   - The MS-DOS and Microsoft Windows ports now behave identically to the
 | 
|---|
| 166 |     GNU and Unix ports with respect to binary files and directories.
 | 
|---|
| 167 | 
 | 
|---|
| 168 | Version 2.2:
 | 
|---|
| 169 | 
 | 
|---|
| 170 | Bug fix release.
 | 
|---|
| 171 | 
 | 
|---|
| 172 |   - Status error number fix.
 | 
|---|
| 173 |   - Skipping directories removed.
 | 
|---|
| 174 |   - Many typos fix.
 | 
|---|
| 175 |   - -f /dev/null fix(not to consider as an empty pattern).
 | 
|---|
| 176 |   - Checks for wctype/wchar.
 | 
|---|
| 177 |   - -E was using the wrong matcher fix.
 | 
|---|
| 178 |   - bug in regex char class fix
 | 
|---|
| 179 |   - Fixes for DJGPP
 | 
|---|
| 180 | 
 | 
|---|
| 181 | Version 2.1:
 | 
|---|
| 182 | 
 | 
|---|
| 183 | This is a bug fix release(see Changelog) i.e. no new features.
 | 
|---|
| 184 | 
 | 
|---|
| 185 |   - More compliance to GNU standard.
 | 
|---|
| 186 |   - Long options.
 | 
|---|
| 187 |   - Internationalisation.
 | 
|---|
| 188 |   - Use automake/autoconf.
 | 
|---|
| 189 |   - Directory hierarchy change.
 | 
|---|
| 190 |   - Sigvec with -e on Linux corrected.
 | 
|---|
| 191 |   - Sigvec with -f on Linux corrected.
 | 
|---|
| 192 |   - Sigvec with the mmap() corrected.
 | 
|---|
| 193 |   - Bug in kwset corrected.
 | 
|---|
| 194 |   - -q, -L and -l stop on first match.
 | 
|---|
| 195 |   - New and improve regex.[ch] from Ulrich Drepper.
 | 
|---|
| 196 |   - New and improve dfa.[ch] from Arnold Robbins.
 | 
|---|
| 197 |   - Prototypes for over zealous C compiler.
 | 
|---|
| 198 |   - Not scanning a file, if it's a directory
 | 
|---|
| 199 |     (cause problems on Sun).
 | 
|---|
| 200 |   - Ported to MS-DOS/MS-Windows with DJGPP tools.
 | 
|---|
| 201 | 
 | 
|---|
| 202 | See Changelog for the full story and proper credits.
 | 
|---|
| 203 | 
 | 
|---|
| 204 | Version 2.0:
 | 
|---|
| 205 | 
 | 
|---|
| 206 | The most important user visible change is that egrep and fgrep have
 | 
|---|
| 207 | disappeared as separate programs into the single grep program mandated
 | 
|---|
| 208 | by POSIX 1003.2.  New options -G, -E, and -F have been added,
 | 
|---|
| 209 | selecting grep, egrep, and fgrep behavior respectively.  For
 | 
|---|
| 210 | compatibility with historical practice, hard links named egrep and
 | 
|---|
| 211 | fgrep are also provided.  See the manual page for details.
 | 
|---|
| 212 | 
 | 
|---|
| 213 | In addition, the regular expression facilities described in Posix
 | 
|---|
| 214 | draft 11.2 are now supported, except for internationalization features
 | 
|---|
| 215 | related to locale-dependent collating sequence information.
 | 
|---|
| 216 | 
 | 
|---|
| 217 | There is a new option, -L, which is like -l except it lists
 | 
|---|
| 218 | files which don't contain matches.  The reason this option was
 | 
|---|
| 219 | added is because '-l -v' doesn't do what you expect.
 | 
|---|
| 220 | 
 | 
|---|
| 221 | Performance has been improved; the amount of improvement is platform
 | 
|---|
| 222 | dependent, but (for example) grep 2.0 typically runs at least 30% faster
 | 
|---|
| 223 | than grep 1.6 on a DECstation using the MIPS compiler.  Where possible,
 | 
|---|
| 224 | grep now uses mmap() for file input; on a Sun 4 running SunOS 4.1 this
 | 
|---|
| 225 | may cut system time by as much as half, for a total reduction in running
 | 
|---|
| 226 | time by nearly 50%.  On machines that don't use mmap(), the buffering
 | 
|---|
| 227 | code has been rewritten to choose more favorable alignments and buffer
 | 
|---|
| 228 | sizes for read().
 | 
|---|
| 229 | 
 | 
|---|
| 230 | Portability has been substantially cleaned up, and an automatic
 | 
|---|
| 231 | configure script is now provided.
 | 
|---|
| 232 | 
 | 
|---|
| 233 | The internals have changed in ways too numerous to mention.
 | 
|---|
| 234 | People brave enough to reuse the DFA matcher in other programs
 | 
|---|
| 235 | will now have their bravery amply "rewarded", for the interface
 | 
|---|
| 236 | to that file has been completely changed.  Some changes were
 | 
|---|
| 237 | necessary to track the evolution of the regex package, and since
 | 
|---|
| 238 | I was changing it anyway I decided to do a general cleanup.
 | 
|---|