linux文件比较工具

  1、diff:compare files line by line

  一般用在纯文本文件的比较上,如在软件包的不同版本之间比较源代码或配置文件的差异。

  1)选项:-i:忽略文件内容的大小写;-b(--ignore-space-change):忽略空白符的差异;-B(--ignore-blank-lines):比较时忽略空白行;-a:将比较的文件都当成纯文本文件处理;-r:比较(两个)目录下文件名的差异,以及同名文件内容的差异(如diff -r /etc/rc.d/rc3.d/ /etc/rc.d/rc5.d/比较两个不同开机运行级别的目录。SuSE)。

  2)原理及示例:diff命令的算法基于"最长公共子序列LCS问题"的解法(动态规划)。

  假设file1的各行分别表示为A B A C B A D B,file2的各行分别表示为C C B C A B A A。运用动态规划算法,计算出这两个序列的(一种)最长公共子序列:

  A B A C B A D B

  C C B C A B A A

  对齐之后的结果(上标是各自的行号):

  

  对比diff的输出:1,3c1、5a4、7d5、8a7,8。1,3c1表示file1的第1~3行被file2的第1行代替;5a4表示file2新增了第4行,基准是file1的第5行(之后);7d5表示file1的第7行在file2中被删除了,基准是file2的第5行(之后);8a7,8类似于5a4。

 

 

 

不断学习中。。。

你可能感兴趣的:(linux)