grepdiff — show files modified by a diff containing a regex
grepdiff [[-n] | [--line-number]] [--number-files] [[-p n] | [--strip-match=n]] [--strip=n] [--addprefix=PREFIX] [[-s] | [--status]] [[-i PATTERN] | [--include=PATTERN]] [[-x PATTERN] | [--exclude=PATTERN]] [[-v] | [--verbose]] [[-E] | [--extended-regexp]] [[-H] | [--with-filename]] [[-h] | [--no-filename]] [--output-matching=WHAT] {[REGEX] | [-f FILE]} [file...]
grepdiff {[--help] | [--version] | [--list] | [--filter ...]}
For each file modified by a patch, if the patch hunk
contains the REGEX then the
file's name is printed.
The regular expression is treated as POSIX Basic Regular
Expression syntax, unless the -E option is
given in which case POSIX Extended Regular Expression syntax
is used.
For example, to see the patches in
my.patch which contain the regular
expression “pf_gfp_mask”, use:
grepdiff pf_gfp_mask my.patch | \ xargs -rn1 filterdiff my.patch -i
You can use both unified and context format diffs with this program.
-n, --line-numberDisplay the line number that each patch begins at. If verbose output is requested, each matching hunk is listed as well.
For a description of the output format see lsdiff(1).
--number-filesFile numbers are listed, beginning at 1, before each filename.
-p n,
--strip-match=nWhen matching, ignore the first
n components of the
pathname.
--strip=nRemove the first n
components of the pathname before displaying
it.
--addprefix=PREFIXPrefix the pathname with
PREFIX before displaying
it.
-sShow file additions, modifications and removals. A file addition is indicated by a “+”, a removal by a “-”, and a modification by a “!”.
-i PATTERN,
--include=PATTERNInclude only files matching
PATTERN.
-x PATTERN
--exclude=PATTERNExclude files matching
PATTERN.
-E,
--extended-regexpUse POSIX Extended Regular Expression syntax.
-H, --with-filenamePrint the name of the patch file containing each match.
-h, --no-filenameSuppress the name of the patch file containing each match.
-f FILE,
--file=FILERead regular expressions from
FILE, one per line.
--output-matching=hunk|fileDisplay the matching hunk-level or file-level diffs.
--helpDisplay a short usage message.
--versionDisplay the version number of grepdiff.
--filterBehave like filterdiff(1) instead.
--listBehave like lsdiff(1) instead.