标题：diff
Linux
用途语法比较文本文件。
语法
比较两个文件的内容
diff [ -c | -C Lines | -D [ String ] | -e | -f | -n ] [ -b ] [ -i] [ -t ] File 1 File2
diff [ -h ] [ -b ] File 1 File2
排序字典的内容并比较不同的文件
diff [ -c | -C Lines | -e | -f | -n ] [ -b ] [ -i ] [ -l ] [ -r ] [ -s ] [ -S File ] [ -t ] [ -w ] Directory1 Directory2
diff [ -h ] [ -b ] Directory1 Directory2描述diff 命令比较文本文件。它能比较单个文件或者目录内容。
注:
diff 命令只有当输入为文本文件时才有效。
如果指定了 Directory1 和 Directory2 参数，diff 命令比较两个目录下名字相同的文本文件。列出不同的二进制文件、公共子目录和只在一个目录出现的文件。
当 diff 命令运行于常规文件时，且当目录比较期间比较不同的文本文件时，diff 命令显示文件中哪些行必须更改以保持它们一致。如果 File1 和 File2 参数都不是目录，其中之一可能给定负号“-”，以采用标准输入。如果 File1 参数是目录，则使用目录中与 File2 参数指定的文件名一致的那个文件。典型输出Lines Affected in File1 Action Lines Affected in File2
Number1 a Number2[,Number3]
Number1[,Number2] d Number3
Number1[,Number2] c Number3[,Number4] 
这些行类似于 ed 子命令将 File1 文件转换成 File2 文件。Action 字母之前的数字指 File1；后面的数字则指 File2。因此，通过将 a 替换成 d，从右往左读，您就能知道如何将 File2 转换成 File1。在 ed 命令下，相同的对（即 Number1 = Number2）会简略为单个数字。
下列每一行，diff 命令显示以 <:（小于符号，冒号）开始的第一个文件中的所有受影响行，然后显示以 >（大于符号）开始的第二个文件中的所有受影响行。
退出值 0 表示没有不同，1 表示找到不同处，2 表示出错。
注:
如果指定了多于一个的 -c、-C、-D、-e、-f 或者 -n 标志，命令行上的最后一个具有优先权。系统不发出错误消息。标志-b 将每行末尾当作单个新行标记处理（忽略新行字符前的空格字符）的任意数量空格字符与其他空格字符串（除了新行标记）同样地比较。
-C Lines 启动 diff 命令，但只比较 Lines 变量指定的行数。-C 标志稍微修改输出。输出以文件的相同部分和创建日期开始。每个更改以 12 个 *（星号）组成的行分隔。从 File1 中要删的行以 -（减号）标记，File2 中要添加的行以 +（加号）标记。从一个文件更改到另一个文件的行在两个文件中都以 !（惊叹号）标记。在每一个文件的指定上下文行中的更改会被整组一起输出。
-c 启动 diff 命令，比较三行上下文。-c 标志稍微修改输出。输出以涉及文件的标识和它们的创建日期开始。每个更改以 12 个 *（星号）组成的行分隔。File1 中要删的行以 -（减号）标记，要被添加到 File2 的行以 + （加号）标记。从一个文件更改到另一个文件的行在两个文件中都以 !（惊叹号）标记。在每一个文件的指定上下文行中的更改会被整组一起输出。
-D [ String ] 使得 diff 命令在标准输出上建立一个 File1 和 File2 的合并版本。包含了 C 预处理器控件以便没有定义 String 的结果编译等同于编译 File1，同时定义 String 产生 File2。
-e 以适合 ed 编辑器的格式进行输出，将 File1 转换成 File2。当使用这个标志时，以下 shell 程序可以帮助维护一个文件的多个版本。手头仅需要由 diff 命令生成的一个祖先文件（$1）和一系列版本的 ed 脚本（$2、$3、...）。标准输出上的最近版本如下：
(shift; cat $*; echo '1,$p') | ed - $1
当使用 -e 标志比较目录时，输出上添加了额外的命令，因此，结果是一个 shell 脚本，将两个目录上的共有文本文件从 Directory1 上的状态转换到 Directory2 上的状态。
注:
由 -e 或 -f 标志产生的编辑脚本无法创建由单个组成的行。（周期）。
-f 以不适合 ed 编辑器的格式创建输出，按照在 -e 标志下产生的逆向顺序显示从 File1 到 File2 的转换的必要修改。
-h 如果要更改的部分比较短而且分隔清晰，则执行备用的比较可能会更快。-h 标志可用于任意长度的文件。-c、-C、-D、-e、-f 和 -n 标志无法与 -h 标志一起使用。当使用 -h 标志时，除了 -b 标志，其他标志一律忽略。
-i 忽略字母大小写。例如，小写 a 被认为同大写 A 一样。
-l 长输出格式。每个由文本文件比较 diff 命令获得的结果通过命令 pr 输送分页。在报告所有文本文件不同之处后，其他不同之处将被记忆和总结。
-n 产生类似于 -e 标志创建的输出，但是顺序相反，而且在每一插入或删除命令上进行更改计数。这是修订控件系统（RCS）所用的格式。
-r 使 diff 命令的应用程序递归到遇到的公共子目录。
-s 报告相同的文件，否则不提。
-S [ File ] 当比较目录时，忽略在 File 变量指定的文件之前整理名称的文件。-S 标志只用于 Directory1 和 Directory2 参数指定的目录。如果您将 -r 标志与 -S 标志一起使用， -S 标志在 Directory1 和 Directory2 子目录中不进行递归。
-t 在输出行扩展制表符。典型输出或者 -c 标志输出会添加字符到每一行首，这会影响初始行的缩进，使得输出列表难以解释。该标志则保留原始源的缩进。
-w 忽略所有空格和制表符，将所有其他空白字符串视为一致。例如，if ( a == b ) 与 if(a==b) 相等。
退出状态
此命令返回下列退出值：
0 未找到不同处。
1 找到不同处。
>1 发生错误。示例1. 要比较两个文件，请输入：
diff chap1.back chap1
只显示文件 chap1.bak 和 chap1 的不同之处。
2. 要比较两个文件，但是忽略空格字符个数的区别，请输入：
diff -w prog.c.bak prog.c
如果两行仅仅空格和制表符数目不同，则 diff -w 目录认为它们相等。
3. 要创建一个包含 ed 命令可以用于从另一个文件重构文件的命令的文件，请输入：
diff -e chap2 chap2.old >new.to.old.ed
这将创建一个名为 new.to.old.ed 的文件，它包含 ed 子命令，把 chap2 转换回在 chap2.old 中找到的文本版本。在大多数情况下，new.to.old.ed 比 chap2.old 要小很多。您可以通过删除 chap2.old 以节省磁盘空间，您也可以在任何时候重建它，通过输入：
(cat new.to.old.ed ; echo '1,$p') | ed - chap2 >chap2.old
括号中的命令把 1,$p 添加到编辑命令的末尾，发送给 ed 编辑器。1,$p 使得 ed 命令在编辑完成后将文件写到标准输出。这一修改的命令序列然后从管道传给 ed 命令（| ed），编辑器读取它作为标准输入。- 标志使 ed 命令不显示文件大小以及其他附加信息因为它们易与 chap2.old 的文本混肴。
文件
/usr/bin/diff 包含 diff 命令。
使用
1) diff/patch这对工具在数学上来说，diff是对2个集合求差，patch是求和
diff A B > C 生成A和B的diff文件C
patch A C 给A打上diff文件得到B
patch -R B C B还原为A
2) 内核补丁
生成
diff -uNr linux-2.6.xxx linux-2.6.xxx.1 > diff.patch
升级
cp diff.patch linux-2.6.xxx/.
cd linux-2.6.xxx
patch -p1 < diff.patch
DIFF线
DIFF线　收盘价短期、长期指数平滑移动平均线间的差 
DEA线　 DIFF线的M日指数平滑移动平均线
MACD线　DIFF线与DEA线的差，彩色柱状线 
参数：SHORT(短期)、LONG(长期)、M 天数，一般为12、26、9 
用法： 
1.DIFF向上突破DEA，买入信号。 
2.DIFF向下跌破DEA，卖出信号。 
3.DEA线与K线发生背离，行情反转信号。 
4.分析MACD柱状线，由红变绿(正变负)，卖出信号；由绿变红，买入信号 
以上只是基本知识,具体内容很复杂,该指标要与K线系统,成交量系统配合看.它即使独立看,也是很有讲究的,金叉,死叉有零上与零下之分,前后有背离之分,红柱桩与黄白线的关系,绿柱桩与黄白线的关系,黄白线在柱桩里运行和柱桩外运行,也是有学问的.山包与山包的关系,大山包与小山包的关系,月线,周线,日线,分时线的看盘方法也是不同的. 
另外我要强调的是MACD在各种指标中,是最好的指标,非常复杂,非常丰富,但又非常管用.也就是说在钱龙一出现就排在第一的道理.
移动平均线PMA是量的一种表现形式.比如指数的三日移动平均线，首先取得连
续三日的三个指数,计算其平均值A，然后后移.去掉最先一个指数，增加新一日一个
指数,再计算三个指数的平均值B.如此移动计算,得到一条三日移动平均线。同理，可
得五日,六日,十日,十三日,三十日,七十日，二百日等移动平均线。移动平均线由样本
数的多少决定了移动变化的急缓。样本数少，变化较急,称为快速线,因此多作为短线
指标。样本数多，变化较缓,称为慢速线,在样本数适当多的时候，多作为中线或长线
指标，重要的是， 因为移动平均线是由一定样本的集合的连续移动计算产生，所以
它的移动方向和速度代表了该集合的整体态势。这一点，正是人们所要利用的。
1、移动平均线向上或向下，都表示了趋势的方向,所以一般而言，PMA由下转
上为买入信号，PMA由上转下为卖出信号。但PMA日数N的选择往往决定
了你的买卖是否成功及成效的大小。这是因为，对单条PMA而言，快速线
反映敏感却显浮躁， 慢速线反映沉实却显呆滞。
然而N的选择终归是没有定论的，不过却有一条原则，即:选择N使得PMA逼
近所分析品种的短期,中期和长期的循环周期.这是要具体分析才能确定的。
如果从某一数学模型来考虑，则是应用费波南茨级数3，5，8，13，
21，34， 55， 来确定PMA的N值。
2、当PMA在指数上方时，PMA是指数的压力线；当PMA 在指数的下方时，
PMA是指数的支持线。一般而言，指数向下跌破PMA为卖出信号，指数向
上升穿PMA为买入信号。
3、美国的专家葛蓝碧为此提出八大买卖法则(PMA=200日PMA，)如下：
(1) 买入信号1：PMA下降后出现平盘或回升移动，当价格突破PMA压力上
升为重要的买入信号。
(2) 买入信号2：PMA仍然上升，但价格却跌穿PMA的支持线，当价格又向
上时为买入信号。
(3) 买入信号3：价格下跌，但获PMA良好支持后回升时为买入信号。
(4) 买入信号4：价格在高位跌破了PMA支持线，引发了急速下跌，短期内
价格仍有向PMA回归的要求，当价格开始向 PMA 回归反弹时为买入信
号。
(5) 卖出信号1：市势逆转，价格跌破PMA支持线时为重要的卖出信号。
(6) 卖出信号2：PMA已处在下降过程中，价格向PMA的回归反弹上穿PMA
压力线，当价格复向下时为卖出信号。
(7) 卖出信号3：价格再次向PMA回归反弹，但被PMA有效压制后下跌为卖
出信号。
(8) 卖出信号4：价格在低位升穿了PMA压力线，引发了急速上升，短期内
价格仍有向PMA回归的要求，当价格开始向PMA回归整理时为卖出信号。
MATLAB
函数简介在matlab中，diff函数用于求导数或者向量和矩阵的比较（详细说明参见： 调用格式及说明）。在matlab的命令窗口中输入doc diff或者help diff即可获得该函数的帮助信息。
调用格式及说明
Y = diff(X)
这里求函数X的一阶导数
Y = diff(X,n)
求函数X的n阶导数
Y = diff(X,dim)
求函数X关于变量dim的偏导数
Y = diff(X,n,dim)
求函数X关于dim的n阶偏导数
若X为向量，
Y = diff（X）= [X(2)-X(1),X(3)-X(2),...,X(n)-X(n-1)]
求前后两项之差
若X为矩阵，
Y = diff（X）= [X(2:n,:) - X(1:n-1,:)]
求每行前后两项之差
相关函数
gradient, prod, sum程序示例>> syms x y z;
>> y=x^2+z^2;
>> diff(y)
ans =2*x
>> diff(y,z)
ans =2*z
在这个示例中，定义了三个符号变量x y z，然后令y等于x和z的平方和，然后diff(y)求关于x的偏导数，而diff(y,z) 则是对y求关于z的偏导数。
>> x=[2 3 5 7 12 23]
>> d=diff(x)
d =
1 2 2 5 11
当然X可以是一个矩阵。更多示例请参阅matlab的帮助文档。