linux比较两个文件
⑴ linux 比较两个文件不同内容
通过你的描述,可以通过如下命令来进行:
diff -y aa.txt bb.txt -W 100
注:
-y 以并列的方式进行显示
-W 指定显示的宽度
以上就是关于两个文件内容的比较命令,希望能帮到你。。。。。。
⑵ linux比较文件输出不同的内容
linux比较文件输出不同的内容目前据我所了解的有如下几种方法,来比较两个文件的行,以输出他们的不同之处:1)
comm
mission:
comm
[-123]
file1
file2
[>
sfile]
NOTE:
file1,file2
must
be
firstly
sorted
!
-1/2/3
means:
-1
-----
rid
the
only
retained
contents
in
file1
-2
-----
rid
the
only
retained
contents
in
file2
-3
-----
rid
the
communal
lines
in
both
two
files
正如,上面说的那样,comm命令运用的前提是针对两个sorted文件!
该命令是对两个已经排好序的文件进行比较。其中file1和file2是已排序的文件。comm读取这两个文件,然后生成三列输出:仅在file1中出现的行;仅在file2中出现的行;在两个文件中都存在的行。如果文件名用-
,则表示从标准输入读取。选项1、2或3抑制相应的列显示。例如comm
-
12就只显示在两个文件中都存在的行;comm
-
23只显示在第一个文件中出现而未在第二个文件中出现的行;comm
-
123则什么也不显示。2)
grep
mission:
grep
-v
-f
file1
file2/*注::此法在对比数字时候比较凑效果,文本对比不建议使用*/3)
awk
mission:
awk
'{print
NR,$0}'
file1
file2
|sort
-k2|uniq
-u
-f
1|sort
-k1|awk
'{print
$2}'或者:awk
'{print
$0}'
file1
file2
|sort|uniq
-u4)
diff
mission:
diff
[-opt]
file1
file2
⑶ Linux cmp比较两个文件是否有差异命令详解
功能说明:比较两个文件是否有差异。
语法:cmp [-clsv][-i <字符数目>][--help][第一个文件][第二个文件]
补充说明:当相互比较的两个文件完全一样时,则该指令不会显示任何信息。若发现有所差异,预设会标示出第一个不同之处的字符和列数编号。若不指定任何文件名称或是所给予的文件名为”-”,则cmp指令会从标准输入设备读取数据。
参数:
-c或–print-chars 除了标明差异处的十进制字码之外,一并显示该字符所对应字符。
-i<字符数目>或–ignore-initial=<字符数目> 指定一个数目。
-l或–verbose 标示出所有不一样的地方。
-s或–quiet或–silent 不显示错误信息。
-v或–version 显示版本信息。
–help 在线帮助。
实例:
1. 要确定两个文件是否相同,请输入:
cmp prog.o.bak prog.o
这比较 prog.o.bak 和 prog.o。如果文件相同,则不显示消息。如果文件不同,则显示第一个不同的位置;例如:
prog.o.bak prog.o differ: char 4, line 1
如果显示消息 cmp: EOF on prog.o.bak,则 prog.o 的第一部分与 prog.o.bak 相同,但在 prog.o 中还有其他数据。
2. 要显示不同字节的每个对,请输入:
cmp -l prog.o.bak prog.o
这比较文件,然后显示字节数(使用十进制格式)和每个不同的不同字节(使用八进制格式)。例如,如果第五个字节在 prog.o.bak 中是八进制 101,在 prog.o 中是 141,则 cmp
⑷ Linux使用diff命令怎么比较文件
1>Diff命令的功能
Linux中Diff命令的功能为逐行比较两个文本文件,列出其不同之处。它对给出的文件进行系统的检查,并显示出两个文件中所有不同的行,不要求事先对文件进行排序。
2>语法
diff
[options]
file1
file2
该命令告诉用户,为了使两个文件file1和file2一致,需要修改它们的哪些行。如果用”-”表示file1或file2,则表示标准输入。如果file1或file2是目录,那么diff将使用该目录中的同名文件进行比较。
3>[options]主要参数
-a:将所有文件当作文本文件来处理。
-b或–ignore-space-change
忽略空格造成的不同。
-B或–ignore-blank-lines
忽略空行造成的不同。
-c:使用纲要输出格式。
-H:利用试探法加速对大文件的搜索。
-I:忽略大小写的变化。
-n
–rcs:输出RCS格式。
-N或–new-file
在比较目录时,若文件A仅出现在某个目录中,会显示:Only
in目录;文件A若使用-N参数,则diff会将文件A与一个空白的文件比较。
-r或–recursive
比较子目录中的文件。
-u,-U<列数>或–unified=<列数>
以合并的方式来显示文件内容的不同。
4>使用方法的实例说明
例如:
diff
/usr/xu
mine
把目录/usr/xu
中名为mine的文件与当前目录中的mine文件进行比较。
通常输出由下述形式的行组成:
n1
a
n3,n4
n1,n2
d
n3
n1,n2
c
n3,n4
这些行类似ed命令把filel转换成file2。字母(a、d和c)之前的行号(n1,n2)是针对file1的,其后面的行号(n3,n4)是针对file2的。字母a、d和c分别表示附加、删除和修改操作。
在上述形式的每一行的后面跟随受到影响的若干行,以”<”打头的行属于第一个文件,以”>”打头的行属于第二个文件。
diff能区别块和字符设备文件以及FIFO(管道文件),不会把它们与普通文件进行比较。
如果file1和file2都是目录,则diff会产生很多信息。
5>diff最常用的功能
diff有很多功能平时我们不常用到,最常用的功能莫过于生成patch文件了:
diff
-urN
old/
new/
>
mysoft.patch
参数
-u
表示使用
unified
格式,-r
表示比较目录,-N
表示将不存在的文件当作空文件处理,这样新添加的文件也会出现在patch文件中。
然后在需要应用patch的地方使用下述命令即可:
patch
-p0
<
mysoft.patch
diff的
-y
命令(长格式为
–side-by-side)可以将屏幕分成左右两部分,来比较两个文件之间的差异。许多图形化的比较工具都有这个功能,但如果只能使用命令行,这个参数就相当有用了。如果要改变左右各部分的宽度,可以通过
-W
(–width)参数来指定。
–ignore-blank-lines
参数可以不检查空白行。这样DOS格式和Unix格式的文件互相比较时,就不至于因为换行符不一致而出现大量的差异。
⑸ Linux中怎样对比两个文件呢
在编码过程中, 经常会用到文件对比功能, Vim 包含了文件对比工具 vimdiff, 用 vimdiff
可以容易地实现文件对比,如要对比file1与file2,直接输入vimdiff file1 file2 即可,关于这方面的资料可以参考下ZLG的《嵌入式Linux开发上册》,基础知识讲的比较详细。
⑹ linux 怎么比较两个目录中的文件
1、给每个目录所有文件生成hash值文件,然后再比较hash值文件区别。
2、创建文件
find ./dir1 -type f |xargs openssl md5 > a.txt
find ./dir2 -type f |xargs openssl md5 > b.txt
3、比较
diff a.txt b.txt
⑺ linux如何比较两个文件夹的差异,然后复制差异文件到另一个文件夹
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#!/bin/bash
#
定义目录变量,便于引用
A=/tmp/A
B=/tmp/B
C=/tmp/C
#
显示B目录文件,按列显示,便于for循环时按行读取
ls
"$B"|awk
'{print
$n}'
>line
#
主程序
for
filename
in
`cat
line`
do
#
!
-f
判断文件名
-d
判断目录/
是否在路径下存在,如果精确匹配需要用到md5sum!
if
[
!
-f
"$A"/"$filename"
];
then
#
提示信息,可删除
echo
$filename
在"$A"不存在,正复制到"$C"目录!
#
cp
-rf
在C目录不存在时直接创建
cp
-rf
"$B"/$filename
"$C"
fi
done
#
清除生成的文件列表文件
rm
-rf
line
1
2
3
4
5
6
7
8
9
10
11
12
13
#!/bin/bash
A=/tmp/A
B=/tmp/B
C=/tmp/C
ls
"$B"|awk
'{print
$n}'
>line
for
filename
in
`cat
line`
do
if
[
!
-f
"$A"/"$filename"
];
then
echo
$filename
在"$A"不存在,正复制到"$C"目录!
cp
-rf
"$B"/$filename
"$C"
fi
done
rm
-rf
line
⑻ 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行。
⑼ 怎么快速对比两个Linux文件夹
一】可以通过ls -l|wc -l对比文件数量是否一样
二】可以通过ls -l >filename.txt然后再diff filename1.txt filename2.txt,将文件名列出来并重定向到一个文件,然后通过diff命令对比这两个文件即可找到有哪些文件不一致。
三】升级版,通过md5sum命令生成md5码,然后用for循环进行遍历对比
⑽ linux怎么比较两个文件最新
在编码过程中, 经常会用到文件对比功能, Vim 包含了文件对比工具 vimdiff, 用 vimdiff
可以容易地实现文件对比,如要对比file1与file2,直接输入vimdiff file1 file2 即可