iis服务器助手广告广告
返回顶部
首页 > 资讯 > 操作系统 >diff与comm命令怎么在linux中使用
  • 292
分享到

diff与comm命令怎么在linux中使用

2023-06-13 04:06:43 292人浏览 八月长安
摘要

diff与comm命令怎么在linux中使用?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。代码作用:比较两个UNIX文本文件,找出并打印文本2比文本1新增加的内容。代码调用

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

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

$> cat temp1.txt
20110224
20110225
20110228
20110301
20110302
# temp2.txt文件内容
$> cat temp2.txt
20110228
20110301
20110302
20110303
20110304

# diff命令输出结果

代码如下:


$> diff temp1.txt temp2.txt
1,2d0
< 20110224
< 20110225
5a4,5
> 20110303
> 20110304
# 只输出temp2.txt文件独有的内容
$> diff temp1.txt temp2.txt | grep "> " | sed 's/> //g'
20110303
20110304

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

代码如下:


$> cat temp1.txt
20101216
20101217
20101220
20101221
20101223
20101224
20101227
20101228
20101229
20101230
20101231
20110103
20110104
20110105
20110106
20110107
20110110
20110111
20110112
20110113
20110114
20110117
20110118
20110119
20110120
20110121
20110124
20110125
20110126
20110127
20110128
20110131
20110201
20110202
20110203
20110204
20110207
20110208
20110209
20110210
20110211
20110214
20110215
20110216
20110217
20110218
20110221
20110222
20110223
20110224
20110225
20110228
20110301
20110302
20110303
$> cat temp2.txt
20110228
20110301
20110302
20110303
20110304
20110307
20110308
20110309
20110310
20110311
20110314
$> diff temp1.txt temp2.txt
1,55c1,11
< 20101216
< 20101217
< 20101220
< 20101221
< 20101223
< 20101224
< 20101227
< 20101228
< 20101229
< 20101230
< 20101231
< 20110103
< 20110104
< 20110105
< 20110106
< 20110107
< 20110110
< 20110111
< 20110112
< 20110113
< 20110114
< 20110117
< 20110118
< 20110119
< 20110120
< 20110121
< 20110124
< 20110125
< 20110126
< 20110127
< 20110128
< 20110131
< 20110201
< 20110202
< 20110203
< 20110204
< 20110207
< 20110208
< 20110209
< 20110210
< 20110211
< 20110214
< 20110215
< 20110216
< 20110217
< 20110218
< 20110221
< 20110222
< 20110223
< 20110224
< 20110225
< 20110228
< 20110301
< 20110302
< 20110303
---
> 20110228
> 20110301
> 20110302
> 20110303
> 20110304
> 20110307
> 20110308
> 20110309
> 20110310
> 20110311
> 20110314
$> diff temp1.txt temp2.txt | grep "> " | sed 's/> //g'
20110228
20110301
20110302
20110303
20110304
20110307
20110308
20110309
20110310
20110311
20110314

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

代码如下:


$> comm -13 temp1.txt temp2.txt
20110304
20110307
20110308
20110309
20110310
20110311
20110314

comm命令用来比较两个文件,具体用法:
comm [-123] file1 file2
-1 过滤file1独有的内容
-2 过滤file2独有的内容
-3 过滤file1和file2重复的内容
 
备注:
diff的输出格式,主要有以下几种:
n1 a n3,n4
n1,n2 d n3
n1,n2 c n3,n4
例如"1,2d0" "5a4,5" "1,55c1,11"等。
其中n1和n2指第一个文件的行数,n3和n4指第二个文件的行数。"a"代表add增加,"d"代表delete删除,"c"代表change整块变动。
有了diff的输出结果,可以使用patch命令将一个文件恢复成另一个,例如:

代码如下:


$> cat temp1.txt
20110224
20110225
20110228
20110301
20110302
$> cat temp2.txt
20110228
20110301
20110302
20110303
20110304
$> diff temp1.txt temp2.txt > temp.diff
$> cat temp.diff
1,2d0
< 20110224
< 20110225
5a4,5
> 20110303
> 20110304
# 使用temp.diff和temp1.txt恢复temp2文件
$> patch -i temp.diff -o temp2_restore.txt temp1.txt
Looks like a nORMal diff.
done
# 完成后temp2_restore和原temp2文件内容一致
$> cat temp2_restore.txt
20110228
20110301
20110302
20110303
20110304

关于diff与comm命令怎么在linux中使用问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注编程网操作系统频道了解更多相关知识。

--结束END--

本文标题: diff与comm命令怎么在linux中使用

本文链接: https://www.lsjlt.com/news/265128.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • diff与comm命令怎么在linux中使用
    diff与comm命令怎么在linux中使用?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。代码作用:比较两个UNIX文本文件,找出并打印文本2比文本1新增加的内容。代码调用...
    99+
    2023-06-13
  • diff命令怎么在Linux中使用
    这期内容当中小编将会给大家带来有关diff命令怎么在Linux中使用,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。总览diff [选项] 源文件 目标文件描述在最简单的情况是, diff 比较两个文件的内...
    99+
    2023-06-12
  • 怎么在linux中使用diff命令
    今天就跟大家聊聊有关怎么在linux中使用diff命令,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。1.命令格式:diff[参数][文件1或目录1][文件2或目录2]2.命令功能:d...
    99+
    2023-06-13
  • comm命令怎么在shell中使用
    今天就跟大家聊聊有关comm命令怎么在shell中使用,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。 comm命令比较两个已排序文件每行数据的差异,并将其结果显示出来,如果...
    99+
    2023-06-09
  • Linux中comm命令怎么用
    这篇文章将为大家详细讲解有关Linux中comm命令怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Linux常用命令comm用于比较两个已排过序的文件。这项指令会一列列地比较两个已排序文件的差异,并...
    99+
    2023-06-28
  • Linux的comm命令怎么使用
    这篇文章主要介绍了Linux的comm命令怎么使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Linux的comm命令怎么使用文章都会有所收获,下面我们一起来看看吧。comm命令是Linux中用于文件比较的命...
    99+
    2023-06-27
  • Linux中diff命令怎么用
    这篇文章主要为大家展示了“Linux中diff命令怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Linux中diff命令怎么用”这篇文章吧。Linux常用命令diff命令 在最简单的情况下...
    99+
    2023-06-28
  • Linux系统中comm命令怎么用
    这篇文章主要介绍了Linux系统中comm命令怎么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Linux系统中comm 命令通常用于较两个已排过序的文件。。语法 ...
    99+
    2023-06-28
  • Linux常用命令comm怎么用
    这篇文章主要介绍了Linux常用命令comm怎么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Linux常用命令comm 命令用于比较两个已排过序的文件。这项指令会一列列地...
    99+
    2023-06-28
  • Linux中Diff命令如何使用
    Linux中Diff命令如何使用,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Linux下9种优秀的代码比对工具推荐这些比对工具其实都是基于 diff 命令,下面就详细介绍...
    99+
    2023-06-15
  • Linux的comm命令如何使用
    这篇“Linux的comm命令如何使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Linux的comm命令如何使用”文章吧...
    99+
    2023-06-27
  • Linux常用命令diff怎么用
    这篇文章给大家分享的是有关Linux常用命令diff怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Linux常用命令diffstat命令用来显示diff命令输出信息的柱状图,用以显示diff命令比较两个文件...
    99+
    2023-06-28
  • diff和patch命令怎么在shell中使用
    diff和patch命令怎么在shell中使用?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。shell中常用的命令:diff(比较文件内容)和patch(打补丁)1.dif...
    99+
    2023-06-09
  • tar命令与rpm命令怎么在linux中使用
    tar命令与rpm命令怎么在linux中使用?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。一. tar  1.压缩一组文件为tar.gz后缀。  # tar...
    99+
    2023-06-13
  • linux中diff命令有什么用
    这篇文章主要为大家展示了“linux中diff命令有什么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“linux中diff命令有什么用”这篇文章吧。这又是一个文件比较命令,熟练掌握会节省你很多...
    99+
    2023-06-09
  • Linux comm命令使用实例分析
    这篇文章主要讲解了“Linux comm命令使用实例分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Linux comm命令使用实例分析”吧!如何使用 comm比较两个排序好的文件要使用c...
    99+
    2023-06-27
  • Linux系统diff命令怎么用
    这篇文章主要介绍Linux系统diff命令怎么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!在Linux系统中diff命令主要用于比较文件差异,执行命令之后可以打印出文件之间的差异。它可以逐行地比较两个文件的内容,...
    99+
    2023-06-28
  • docker diff命令怎么用
    这篇文章主要为大家展示了“docker diff命令怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“docker diff命令怎么用”这篇文章吧。docker diff当你运行了一个容器,但...
    99+
    2023-06-02
  • Linux文件处理命令之diff怎么用
    这篇文章主要介绍Linux文件处理命令之diff怎么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!diff1.作用diff命令用于两个文件之间的比较,并指出两者的不同,它的使用权限是所有用户。2.格式diff [o...
    99+
    2023-06-16
  • ls与alias命令怎么在Linux系统中使用
    这篇文章给大家介绍ls与alias命令怎么在Linux系统中使用,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。ls命令作用:列举目录文件信息( list directory content )格式:ls [option...
    99+
    2023-06-09
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作