Linux 下比较文件内容并相同部分、不同部分
说明,是通过file2内容与file1做比较,最后列出file1与file2不同的部分!
一、准备两个文件:
[root@kinggoo.com test1]# cat file1
a
b
c
d
e [root@kinggoo.com test1]# cat file2
c
e
二、比较方法:
方法一:grep 命令
[root@kinggoo.com test1]# grep -v -f file2 file1
a
b
d
方法二:comm 命令
[root@kinggoo.com test1]# comm - file1 file2
a
b
d
命令解释:
comm
功能说明:比较两个已排过序的文件。
语 法:comm [-123][–help][–version][第1个文件][第2个文件]
补充说明:
这项指令会一列列地比较两个已排序文件的差异,并将其结果显示出来,
如果没有指定任何参数,则会把结果分成3行显示:
第1行仅是在第1个文件中出现过的列,
第2行是仅在第2个文件中出现过的列,
第3行则是在第1与第2个文件里都出现过的列。
若给予的文件名称为"-",则comm指令会从标准输入设备读取数据。
方法三:awk命令
打印出file1、file2文件,第一列为行数、第二列为两文件内容 |然后按第二列排序|删除重复行(sort -u也可以,但它会保留一个重复项)|在按第一列行数排序|打印出第二列
[root@kinggoo.com test1]# awk '{print NR,$0}' file1 file2 |sort -k2|uniq -u -f |sort -k1|awk '{print $2}'
或者:
这个跟上面一样,短的原因就是因为它不需要考虑上面的第一列,因为它一直没打印过。
[root@kinggoo.com test1]# awk '{print $0}' file1 file2 |sort|uniq -u
摘自:http://kinggoo.com/diffcommgrepawksortuniq.htm?utm_source=tuicool&utm_medium=referral
Linux 下比较文件内容并相同部分、不同部分的更多相关文章
- linux下直接复制文件内容到剪切板
title: linux下直接复制文件内容到剪切板 date: 2017-11-23 17:00:06 tags: categories: Linux 首先安装xsel. xsel --input - ...
- 在Linux下查找文件内容包含某个特定字符串的文件
如何在Linux下查找文件内容包含某个特定字符串的文件? 我的目录下面有test1和test2两个文件夹,里面都含有很多文件,其中test2里面还包含一个test文件夹 我想请问的是,如何通过查找关键 ...
- Linux下Python 文件内容替换脚本
Linux下Python 文件替换脚本 import sys,os if len(sys.argv)<=4: old_text,new_text = sys.argv[1],sys.argv[2 ...
- Linux下查看文件内容的命令
查看文件内容的命令: cat 由第一行开始显示内容,并将所有内容输出 tac 从最后一行倒序显示内容,并将所有内容输出 more 根据窗口大小,一页一页的现实文件内容 less ...
- linux下查看文件内容cat,more,less
1. 查看文件内容经常使用的命令 cat : 由第一行显示文件内容 tac: 从最后一行開始显示.与cat相反 nl : 文件内容和行号一起输出 more: 一页一页显示 less: 与more类 ...
- Linux下查看文件内容的命令和工具
1.catcat命令主要用来查看文件内容,创建文件,合并文件,追加文件等. 1.1.查看文件 格式:cat 文件名称 说明:这条命令会把文件内容全部输出到显示屏上. cat -n 文件名称:查看文件内 ...
- [原]Linux下清空文件内容的三种方法
========问题======== 有些文件需要清空内容而不改变属性 =======解决方案====== 1.直接删除,创建同名文件.(这种方法的弊端是有可能这个文件带着权限或者是属性,那么你新建这 ...
- Linux下查看文件内容的几种常用命令
[常用] 1,cat 由第一行开始显示内容,并将所有内容输出 cat的功能是将文件从第一行开始连续的将内容输出在屏幕上.但是cat并不常用,原因是当文件大,行数比较多时,屏幕无法全部容下时,只 ...
- linux下清空文件内容的3个命令
1.使用echo "" > file_name,直接将空字符串重定向并覆盖到目标文件 2.使用cat /dev/null > file_name,读取dev目录下的一个 ...
随机推荐
- NOT IN查询效率低,用它的等效写法提高效率。
最近在处理大数据量导入的时候,使用OPENROWSET将Excel导入到临时表中之后,需要对数据进行唯一性验证.这时候发现使用NOT IN严重影响效率,一条sql可能执行10分钟甚至更久.尝试改变写法 ...
- Flash Builder 调试器无法连接到正在运行的应用程序(57%)
Flash Builder 调试器无法连接到正在运行的应用程序(57%),可能原因: 1,flashplayer不是debug版. 2,调试器(用debug版flashplayer随便 ...
- 【译】RabbitMQ:远程过程调用(RPC)
在教程二中,我们学习了如何使用工作队列在多个工作线程中分发耗时的任务.但如果我们需要去执行远程机器上的方法并且等待结果会怎么样呢?那又是另外一回事了.这种模式通常被称为远程过程调用(RPC). 本教程 ...
- javascript函数声明方式
javascript中函数的声明有三种方式: 最常见的函数声明: fun();//可以调用,因为这种声明方式会被浏览器优先加载. function fun() { alert("声明式的函数 ...
- 如何用Maven创建web项目(具体步骤)
版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[+] 使用eclipse插件创建一个web project 首先创建一个Maven的Project如下图 我们勾选上Creat ...
- final
final的变量的值不能被改变.(包括形参) final的方法不能被重写. final的类不能被继承.
- c# Exception 异常信息归整
private string ErrorMessage(Exception exception) { StringBuilder stringBuilder = new StringBuilder() ...
- 关于springmvc的配置文件
开发常用的springmvc.xml配置文件,spring 3.0 spring-servlet.xml配置. <?xml version="1.0" encoding=&q ...
- 从多列的DataTable里取需要的几列(转)
方法一: 也是广为人知的一种: YourDataTable.Columns.Remove("列名"); 但是这种情况只适合于去掉很少列的情况. 如果有很多列我却只要一两列呢,那就得 ...
- WPFUIElement的Background的问题
<Border Name="> <Border.Background> <VisualBrush> <VisualBrush.Visual> ...