linux比较文件内容,linux保存文件命令

linux 下比较两个文件内容的命令

我感觉你这个要求太特殊了。因为据我所知linux中的关于文件比较的命令没有提供给你这么多功能。

你可以这么一步步的来。

写一个shell脚本

假设两个文件1.txt 2.txt

第一条命令

$diff-urN 1.txt 2.txt> diff.patch

生成出来的diff.patch就是两个文件中不同的记录。

你如果需要加上你后面的“希望比较除了这行的其他内容......”等等要求的话,用其它要求做处理就行了。

附带,你可以先grep出带@的行,计算出在哪儿改的,改了哪几个字符

至于空格和制表符,我想sed就能完成了。

linux diff命令详解

diff命令在最简单的情况下,比较给定的两个文件的不同。如果使用“-”代替“文件”参数,则要比较的内容将来自标准输入。diff命令是以逐行的方式,比较文本文件的异同处。如果该命令指定进行目录的比较,则将会比较该目录中具有相同文件名的文件,而不会对其子目录文件进行任何比较操作。下面是linux diff命令的具体介绍:

diff(diff即different简写)命令用于比较文件的差异。

选项:

-

-a或——text:diff预设只会逐行比较文本文件;

-b或–ignore-space-change:不检查空格字符的不同;

-B或–ignore-blank-lines:不检查空白行;

-c:显示全部内容,并标出不同之处;

-C

-d或——minimal:使用不同的演算法,以小的单位来做比较;

-D

-e或——ed:此参数的输出格式可用于ed的script文件;

-f或-forward-ed:输出的格式类似ed的script文件,但按照原来文件的顺序来显示不同处;

-H或–speed-large-files:比较大文件时,可加快速度;

-l

-i或–ignore-case:不检查大小写的不同;

-l或——paginate:将结果交由pr程序来分页;

-n或——rcs:将比较结果以RCS的格式来显示;

-N或–new-file:在比较目录时,若文件A仅出现在某个目录中,预设会显示:Only in目录,文件A若使用-N参数,则diff会将文件A与一个空白的文件比较;

-p:若比较的文件为C语言的程序码文件时,显示差异所在的函数名称;

-P或–unidirectional-new-file:与-N类似,但只有当第二个目录包含了第一个目录所没有的文件时,才会将这个文件与空白的文件做比较;

-q或–brief仅显示有无差异,不显示详细的信息;

-r或——recursive:比较子目录中的文件;

-s或–report-identical-files:若没有发现任何差异,仍然显示信息;

-S

-t或–expand-tabs:在输出时,将tab字符展开;

-T或–initial-tab:在每行前面加上tab字符以便对齐;

-u,-U

-v或——version:显示版本信息;

-w或–ignore-all-space:忽略全部的空格字符;

-W

-x

-X

-y或–side-by-side:以并列的方式显示文件的异同之处;

–help:显示帮助;

–left-column:在使用-y参数时,若两个文件某一行内容相同,则仅在左侧的栏位显示该行内容;

–suppress-common-lines:在使用-y参数时,仅显示不同之处。

linux 中两个文档怎么对比内容是否一致

可以用diff命令对比文档内容。

[语法]: diff [参数]文件1文件2

[说明]:本命令比较两个文本文件,将不同的行列出来

-b将一串空格或TAB转换成一个空格或TAB

-e生成一个编辑角本,作为ex或ed的输入可将文件1转换成文件2

[例子]:

diff file1 file2

diff-b file1 file2

diff-e file1 file2>edscript

diff命令的常用参数

a将所有文件当做文本文件来处理

b忽略空格造成的不同

B忽略空行造成的不同

q只报告什么地方不同,不报告具体的不同信息

H利用试探法加速对大文件的搜索

i忽略大小写的变化

l用pr对输出进行分页

r在比较目录时比较所有的子目录

s两个文件相同时才报告

v在标准输出上输出版本信息并退出

实例:比较两个文件

代码如下:

[root@localhost test3]# diff log2014.log log2013.log

----------------------------------------------------------------------------

3c3

《 2014-03

---

》 2013-03

8c8

《 2013-07

---

》 2013-08

11,12d10

《 2013-11

《 2013-12

----------------------------------------------------------------------------

说明:上面的“3c3”和“8c8”表示log2014.log和log20143log文件在3行和第8行内容有所不同;“11,12d10”表示第一个文件比第二个文件多了第11和12行。

阅读剩余
THE END