本篇内容介绍了“linux如何比较文件不同”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
linux比较文件不同的方法:1、使用comm命令,可比较已经排序的文件,语法“comm [选项] 文件名1 文件名2”;2、使用diff命令,会以逐行的方式比较文本文件的异同处,语法“diff [选项] 文件名1 文件名2”。
本教程操作环境:linux5.9.8系统、Dell G3电脑。
linux 比较文件不同
Linux文件比较命令用来比较两个文件内容的差别。主要有comm
命令和diff
命令。如果想对两个有序的文件进行比较,可以使用comm命令。如果要逐行比较两个文本文件,列出其不同之处可以使用diff命令。
使用comm命令比较:
比较已经排序的文件
comm [选项] 文件名1 文件名2
comm将逐行比较已经排序的两个文件。显示结果包括3列:
第1列为只在file1中找到的行;第2列为只在file2中找到的行;第3列为两个文件的公用行。
参数
参数file1和file2为comm要比较的文件的路径名。用连字符(-)来替代file1或者file2时,comm将从标准输入读取输入信息
选项
-1 不显示第1列(即不显示只在file1中找到的行)
-2 不显示第2列(即不显示只在file2中找到的行)
-3 不显示第3列(即不显示在两个文件中都找到的行)
注意
如果文件没有排序,comm就不能正常的工作
第2列的没一行前面有一个制表符,第3列中的每一行前面有两个制表符
示例:
原文件
$ cat a bbbbb ccccc ddddd eeeee fffff $ cat b aaaaa ddddd eeeee ggggg hhhhh
输入命令:
$ comm a b aaaaa bbbbb ccccc ddddd eeeee fffff ggggg hhhhh $
比较排序过的a和b文件
$ comm -12 a b ddddd eeeee
仅显示公有行
使用diff命令比较:
diff(difference)命令常用来比较两个文件中的内容。diff 命令在最简单的情况下,比较两个文件的不同。如果使用“-”代替“文件”参数,则要比较的内容将来自标准输入。
diff 命令是以逐行的方式比较文本文件的异同处。如果该命令指定进行目录的比较,则将会比较该目录中具有相同文件名的文件,而不会对其子目录文件进行任何比较操作。
比较文件的格式
diff [选项] 文件名1 文件名2
示例:
比较两个文件的不同。
创建两个样本文件,分别命名为 text 和 text1,并分别输入以下内容:
//test 11 22 33 44 55 66 77 //test1 11 22 aa 33 44 55 bb 66
在终端页面中输入命令如下:
[root@bogon ~]# diff test test1 3c3 < --- > aa 7c7 < --- > bb 9,10d8 < 77 <
输出信息的含义分别为:
“3c3”:表示第一个文件的第 3 行需要修改才能和第二个文件的第3行相匹配;
“---”:表示分隔线;
“>aa”:> 表示第二个文件,第一个文件中需要添加的内容为 aa,该内容存放在第二个文件中;
“>bb”:> 表示第二个文件,第一个文件中需要添加的内容为 bb,该内容存放在第二个文件中;
“9,10d8”:表示删除第一个文件中的第 9 和第 10 行才能和第二个文件中的第 8 行相匹配;
“<77”:表示第一个文件中待删除的内容为 77。
“linux如何比较文件不同”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。