How to make a diff file on Mac
June 08, 2013
BBedit | Web Building

I had occasion to make a patch file the other day, and since I do this so rarely, it took some time to look up how to do it. So here, in a nutshell is how to use diff on a Mac.

Open terminal.
At the prompt, type
diff -up newfile oldfile

But really the easiest way to get the paths right is to type:

diff -up

...then drag first the new file, then the old file from the desktop onto the terminal window right at the end of the line after -up . It will fill in the paths for you.


Ads by Google

Posted by ellen at June 08, 2013 07:03 PM

A complete dictionary of all commands you can use with "diff" are available by typing

diff --help

at the command prompt - and also reproduced below the break.



-i --ignore-case Ignore case differences in file contents.
--ignore-file-name-case Ignore case when comparing file names.
--no-ignore-file-name-case Consider case when comparing file names.
-E --ignore-tab-expansion Ignore changes due to tab expansion.
-b --ignore-space-change Ignore changes in the amount of white space.
-w --ignore-all-space Ignore all white space.
-B --ignore-blank-lines Ignore changes whose lines are all blank.
-I RE --ignore-matching-lines=RE Ignore changes whose lines all match RE.
--strip-trailing-cr Strip trailing carriage return on input.
-a --text Treat all files as text.

-c -C NUM --context[=NUM] Output NUM (default 3) lines of copied context.
-u -U NUM --unified[=NUM] Output NUM (default 3) lines of unified context.
--label LABEL Use LABEL instead of file name.
-p --show-c-function Show which C function each change is in.
-F RE --show-function-line=RE Show the most recent line matching RE.
-q --brief Output only whether files differ.
-e --ed Output an ed script.
--normal Output a normal diff.
-n --rcs Output an RCS format diff.
-y --side-by-side Output in two columns.
-W NUM --width=NUM Output at most NUM (default 130) print columns.
--left-column Output only the left column of common lines.
--suppress-common-lines Do not output common lines.
-D NAME --ifdef=NAME Output merged file to show `#ifdef NAME' diffs.
--GTYPE-group-format=GFMT Similar, but format GTYPE input groups with GFMT.
--line-format=LFMT Similar, but format all input lines with LFMT.
--LTYPE-line-format=LFMT Similar, but format LTYPE input lines with LFMT.
LTYPE is `old', `new', or `unchanged'. GTYPE is LTYPE or `changed'.
GFMT may contain:
%< lines from FILE1
%> lines from FILE2
%= lines common to FILE1 and FILE2
%[-][WIDTH][.[PREC]]{doxX}LETTER printf-style spec for LETTER
LETTERs are as follows for new group, lower case for old group:
F first line number
L last line number
N number of lines = L-F+1
E F-1
M L+1
LFMT may contain:
%L contents of line
%l contents of line, excluding any trailing newline
%[-][WIDTH][.[PREC]]{doxX}n printf-style spec for input line number
Either GFMT or LFMT may contain:
%% %
%c'C' the single character C
%c'\OOO' the character with octal code OOO

-l --paginate Pass the output through `pr' to paginate it.
-t --expand-tabs Expand tabs to spaces in output.
-T --initial-tab Make tabs line up by prepending a tab.

-r --recursive Recursively compare any subdirectories found.
-N --new-file Treat absent files as empty.
--unidirectional-new-file Treat absent first files as empty.
-s --report-identical-files Report when two files are the same.
-x PAT --exclude=PAT Exclude files that match PAT.
-X FILE --exclude-from=FILE Exclude files that match any pattern in FILE.
-S FILE --starting-file=FILE Start with FILE when comparing directories.
--from-file=FILE1 Compare FILE1 to all operands. FILE1 can be a directory.
--to-file=FILE2 Compare all operands to FILE2. FILE2 can be a directory.

--horizon-lines=NUM Keep NUM lines of the common prefix and suffix.
-d --minimal Try hard to find a smaller set of changes.
--speed-large-files Assume large files and many scattered small changes.

-v --version Output version info.
--help Output this help.

FILES are `FILE1 FILE2' or `DIR1 DIR2' or `DIR FILE...' or `FILE... DIR'.
If --from-file or --to-file is given, there are no restrictions on FILES.
If a FILE is `-', read standard input.



Ads by Google


Ads by Google

 RSS   |   Contact Me


Ads by Google