diffmk oldfile newfile markedfile
diffmk 比较一个文件的两个版本,并创建第三个版本,该版本包括用于 nroff(1) 和 troff(1) 的“更改标记”(.mc) 命令。oldfile 和 newfile 是该文件的旧版本和新版本。diffmk 生成 markedfile,其中包含来自 newfile 的文本以及在 newfile 不同于 oldfile 的情况下插入的 troff(1)“更改标记”请求 (.mc)。markedfile 格式化后,在每行的右边距处用 | 指示更改或插入的文本。用单个 * 指示删除了文本的位置。
有关 diffmk 遇到大于或等于 2 GB(231 字节)文件时行为的说明,请参见 largefile(5)。
diffmk 还可以与恰当的 troff 请求一起使用,用于生成包含更改标记的程序列表。在以下命令行中:
example% diffmk old.c new.c marked.c ; nroff reqs marked.c | pr
文件 reqs 包含以下 troff 请求:
.pl 1 .ll 77 .nf .eo .nh
该请求将分别消除分页符、调整行长度、设置 no-fill 模式、忽略转义字符以及禁用断字。
如果字符 | 和 * 不合适,则可通过 sed(1) 运行 markedfile 对它们进行全局更改。
有关下列属性的说明,请参见 attributes(5):
|
diff(1)、nroff(1)、sed(1)、troff(1)、attributes(5)、largefile(5)
出于美观的考虑,可能需要手动调整一些输出。仅涉及格式化请求的文件差异可能会产生不必要的输出,即,将 .sp 替换为 .sp 2 将在之前或之后的输出行上产生一个“更改标记”。