diff与通讯命令怎么在linux中使用

diff与通讯命令怎么在linux中使用?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

代码作用:比较两个UNIX文本文件,找出并打印文本2比文本1新增加的内容。
代码调用了diff命令,例如:
# temp1.txt文件内容

比美元;猫temp1。txt
20110224
20110224
20110228
20110228
20110302
# temp2.txt文件内容
在美元;猫temp2。txt
20110228
20110228
20110302
20110302
20110304

# diff命令输出结果

代码如下:


在美元;diff temp1。txt temp2.txt
1、2 d0
& lt;20110224
& lt;20110225
5 a4, 5
比;20110303
在20110304
#只输出temp2.txt文件独有的内容
在美元;diff temp1。txt temp2。txt | grep“比;“;| sed & # 39; s/比;//舌鳎# 39;
20110303
20110303

说明:输出结果去掉了两个文件的共同内容,只输出了temp2.txt的新增部分,和预想的结果一样。
,
但是,随着temp1.txt文件内容的增加,diff命令出现了不同预期的结果:

代码如下:


在美元;猫temp1.txt
20101216
20101216
20101220
20101220
20101223
20101223
20101227
20101227
20101229
20101229
20101231
20101231
20110104
20110104
20110106
20110106
20110110
20110110
20110112
20110112
20110114
20110114
20110118
20110118
20110120
20110120
20110124
20110124
20110126
20110126
20110128
20110128
20110201
20110201
20110203
20110203
20110207
20110207
20110209
20110209
20110211
20110211
20110215
20110215
20110217
20110217
20110221
20110221
20110223
20110223
20110225
20110225
20110301
20110301
20110303
在美元;猫temp2.txt
20110228
20110301
20110301
20110303
20110303
20110307
20110307
20110309
20110309
20110311
20110311
在美元;diff temp1。txt temp2.txt
1, 55 c1, 11
& lt;20101216
& lt;20101217
& lt;20101220
& lt;20101221
& lt;20101223
& lt;20101224
& lt;20101227
& lt;20101228
& lt;20101229
& lt;20101230
& lt;20101231
& lt;20110103
& lt;20110104
& lt;20110105
& lt;20110106
& lt;20110107
& lt;20110110
& lt;20110111
& lt;20110112
& lt;20110113
& lt;20110114
& lt;20110117
& lt;20110118
& lt;20110119
& lt;20110120
& lt;20110121
& lt;20110124
& lt;20110125
& lt;20110126
& lt;20110127
& lt;20110128
& lt;20110131
& lt;20110201
& lt;20110202
& lt;20110203
& lt;20110204
& lt;20110207
& lt;20110208
& lt;20110209
& lt;20110210
& lt;20110211
& lt;20110214
& lt;20110215
& lt;20110216
& lt;20110217
& lt;20110218
& lt;20110221
& lt;20110222
& lt;20110223
& lt;20110224
& lt;20110225
& lt;20110228
& lt;20110301
& lt;20110302
& lt;20110303
——
在20110228
在20110301
在20110302
在20110303
在20110304
在20110307
在20110308
在20110309
在20110310
在20110311
在20110314美元
在diff temp1。txt temp2。txt | grep“比;“;| sed & # 39; s/比;//舌鳎# 39;
20110228
20110228
20110302
20110302
20110304
20110304
20110308
20110309
20110309
20110311
20110311

可以看的到,diff命令不但输出了temp2.txt文件的新增部分(20110304——20110314),也同时输出了两个文件的共同内容(20110228——20110303),从而导致了与预期不一致的结果。
查看diff命令的男人手册发现,diff的作用是比较两个文件的内容,并输出两个文件之间的差异,产生一个能够将两个文件互相转换的列的表,但这个列表并不能100%保证是最小集。
于是,以上例子中,可以看到diff给出了temp1.txt和temp2.txt文件的比较差异结果,但其中包含了两个文件的共同部分,因此与预期不一样。
,
解决方法:
用通讯命令代替diff,例如:

代码如下:


在美元;-13 temp1通讯。txt temp2。txt
20110304
20110304
20110308
20110308
20110310
20110311
20110311

通讯命令用来比较两个文件,具体用法:
通讯[-123]file1 file2
,
备注:
diff的输出格式,主要有以下几种:
例如“1、2 d0"“5 a4, 5“;“1,55 c1, 11“等。

diff与通讯命令怎么在linux中使用