| 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. | 
|---|