Linux Commands Examples

A great documentation place for Linux commands

grepdiff

show files modified by a diff containing a regex


see also : filterdiff - lsdiff

Synopsis

grepdiff [[-n] | [--line-number]] [--number-files] [[-p n] | [--strip-match=n]] [--strip=n] [--addprefix=PREFIX] [--addoldprefix=PREFIX] [--addnewprefix=PREFIX] [[-s] | [--status]] [[-i PATTERN] | [--include=PATTERN]] [[-I FILE] | [--include-from-file=FILE]] [[-x PATTERN] | [--exclude=PATTERN]] [[-X FILE] | [--exclude-from-file=FILE]] [[-# RANGE] | [--hunks=RANGE]] [--lines=RANGE] [--files=RANGE] [--annotate] [--as-numbered-lines=WHEN] [--format=FORMAT] [--remove-timestamps] [[-v] | [--verbose]] [[-z] | [--decompress]] [[-E] | [--extended-regexp]] [[-H] | [--with-filename]] [[-h] | [--no-filename]] [--output-matching=WHAT] {[REGEX] | [-f FILE]} [file...]

grepdiff {[--help] | [--version] | [--list] | [--filter ...]}


add an example, a script, a trick and tips

: email address (won't be displayed)
: name

Step 2

Thanks for this example ! - It will be moderated and published shortly.

Feel free to post other examples
Oops ! There is a tiny cockup. A damn 404 cockup. Please contact the loosy team who maintains and develops this wonderful site by clicking in the mighty feedback button on the side of the page. Say what happened. Thanks!

examples


no example yet ...

... Feel free to add your own example above to help other Linux-lovers !

description

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.

options

-n, --line-number

Display 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-files

File numbers are listed, beginning at 1, before each filename.

-p n, --strip-match=n

When matching, ignore the first n components of the pathname.

--strip=n

Remove the first n components of the pathname before displaying it.

--addprefix=PREFIX

Prefix the pathname with PREFIX before displaying it. This will override any individual settings specified with the --addoldprefix or --addnewprefix options.

--addoldprefix=PREFIX

Prefix pathnames for old or original files in the output by PREFIX.

--addnewprefix=PREFIX

Prefix pathnames for updated or new files in the output by PREFIX.

-s

Show file additions, modifications and removals. A file addition is indicated by a “+”, a removal by a “-”, and a modification by a “!”.

-i PATTERN, --include=PATTERN

Include only files matching PATTERN.

-I FILE, --include-from-file=FILE

Include only files matching any pattern listed in FILE, one pattern per line. All other lines in the input are suppressed.

-x PATTERN --exclude=PATTERN

Exclude files matching PATTERN.

-X FILE, --exclude-from-file=FILE

Exclude files matching any pattern listed in FILE, one pattern per line. All other lines in the input are displayed.

-# RANGE, --hunks=RANGE

Only include hunks within the specified RANGE. Hunks are numbered from 1, and the range is a comma-separated list of numbers or “first-last” spans; either the first or the last in the span may be omitted to indicate no limit in that direction.

--lines=RANGE

Only list hunks that contain lines from the original file that lie within the specified RANGE. Lines are numbered from 1, and the range is a comma-separated list of numbers or “first-last” spans; either the first or the last in the span may be omitted to indicate no limit in that direction.

--files=RANGE

Only list files indicated by the specified RANGE. Files are numbered from 1 in the order they appear in the patch input, and the range is a comma-separated list of numbers or “first-last” spans; either the first or the last in the span may be omitted to indicate no limit in that direction.

--annotate

Annotate each hunk with the filename and hunk number.

--as-numbered-lines=before|after

Instead of a patch fragment, display the lines of the selected hunks with the line number of the file before (or after) the patch is applied, followed by a TAB character and a colon, at the beginning of each line. Each hunk except the first will have a line consisting of “...” before it.

--format=unified|context

Use specified output format.

--remove-timestamps

Do not include file timestamps in the output.

-z, --decompress

Decompress files with extensions .gz and .bz2.

-E, --extended-regexp

Use POSIX Extended Regular Expression syntax.

-H, --with-filename

Print the name of the patch file containing each match.

-h, --no-filename

Suppress the name of the patch file containing each match.

-f FILE, --file=FILE

Read regular expressions from FILE, one per line.

--output-matching=hunk|file

Display the matching hunk-level or file-level diffs.

--help

Display a short usage message.

--version

Display the version number of grepdiff.

--filter

Behave like filterdiff(1) instead.

--list

Behave like lsdiff(1) instead.


see also

filterdiff , lsdiff


author

Tim Waugh <twaugh[:at:]redhat[:dot:]com>

Package maintainer

How can this site be more helpful to YOU ?


give  feedback