From eab7f29c2852196b1e0bf60404cab13dbcbf0a78 Mon Sep 17 00:00:00 2001 From: Joshua Levy Date: Sat, 20 Jun 2015 10:10:06 -0700 Subject: [PATCH] Add diff, patch, and diffstat. Fixes #36. --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index 1e02c48..8097227 100644 --- a/README.md +++ b/README.md @@ -196,10 +196,14 @@ Notes: - If you ever need to write a tab literal in a command line in Bash (e.g. for the -t argument to sort), press **ctrl-v** **[Tab]** or write `$'\t'` (the latter is better as you can copy/paste it). +- The standard tools for patching source code are `diff` and `patch`. See also `diffstat` for summary statistics of a diff. Note `diff -r` works for entire directories. Use `diff -r tree1 tree2 | diffstat` for a summary of changes. + - For binary files, use `hd` for simple hex dumps and `bvi` for binary editing. - Also for binary files, `strings` (plus `grep`, etc.) lets you find bits of text. +- For binary diffs (delta compression), use `xdelta3`. + - To convert text encodings, try `iconv`. Or `uconv` for more advanced use; it supports some advanced Unicode things. For example, this command lowercases and removes all accents (by expanding and dropping them): ```sh uconv -f utf-8 -t utf-8 -x '::Any-Lower; ::Any-NFD; [:Nonspacing Mark:] >; ::Any-NFC; ' < input.txt > output.txt