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行。