说明,是通过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 下比较文件内容并相同部分、不同部分的更多相关文章

  1. linux下直接复制文件内容到剪切板

    title: linux下直接复制文件内容到剪切板 date: 2017-11-23 17:00:06 tags: categories: Linux 首先安装xsel. xsel --input - ...

  2. 在Linux下查找文件内容包含某个特定字符串的文件

    如何在Linux下查找文件内容包含某个特定字符串的文件? 我的目录下面有test1和test2两个文件夹,里面都含有很多文件,其中test2里面还包含一个test文件夹 我想请问的是,如何通过查找关键 ...

  3. Linux下Python 文件内容替换脚本

    Linux下Python 文件替换脚本 import sys,os if len(sys.argv)<=4: old_text,new_text = sys.argv[1],sys.argv[2 ...

  4. Linux下查看文件内容的命令

    查看文件内容的命令: cat     由第一行开始显示内容,并将所有内容输出 tac     从最后一行倒序显示内容,并将所有内容输出 more    根据窗口大小,一页一页的现实文件内容 less ...

  5. linux下查看文件内容cat,more,less

    1. 查看文件内容经常使用的命令 cat : 由第一行显示文件内容 tac:  从最后一行開始显示.与cat相反 nl :  文件内容和行号一起输出 more: 一页一页显示 less: 与more类 ...

  6. Linux下查看文件内容的命令和工具

    1.catcat命令主要用来查看文件内容,创建文件,合并文件,追加文件等. 1.1.查看文件 格式:cat 文件名称 说明:这条命令会把文件内容全部输出到显示屏上. cat -n 文件名称:查看文件内 ...

  7. [原]Linux下清空文件内容的三种方法

    ========问题======== 有些文件需要清空内容而不改变属性 =======解决方案====== 1.直接删除,创建同名文件.(这种方法的弊端是有可能这个文件带着权限或者是属性,那么你新建这 ...

  8. Linux下查看文件内容的几种常用命令

    [常用] 1,cat     由第一行开始显示内容,并将所有内容输出 cat的功能是将文件从第一行开始连续的将内容输出在屏幕上.但是cat并不常用,原因是当文件大,行数比较多时,屏幕无法全部容下时,只 ...

  9. linux下清空文件内容的3个命令

    1.使用echo "" > file_name,直接将空字符串重定向并覆盖到目标文件 2.使用cat /dev/null > file_name,读取dev目录下的一个 ...

随机推荐

  1. WCF通过SVCUtil.exe生成客户端代理类和配置文件(转)

    WCF服务调用通过两种常用的方式: 1:一种是借助代码生成工具SvcUtil.exe或者添加服务引用的方式. 2:一种是通过ChannelFactory直接创建服务代理对象进行服务调用. 本文只针对通 ...

  2. Android消息的提示,Toast吐司方式

    1:选中某个控件进行触发 2:触发事件进行监听,然后绑定Toast对象进行消息提示 1,创建Android项目的时候,自带的一个Activity,我们看看代码 package com.example. ...

  3. JS之函数表达式

    度过一个愉快短暂的周末,又可以开始学习了!我爱学习,学习使人进步.今天学习函数表达式,着重学习下闭包函数. 函数表达式 可以在定义的函数声明之前调用它,但是不能在定义函数表达式之前调用它 /** * ...

  4. C#设置字体(FontDIalog)、颜色(ColorDialog)对话框控件

    设置字体控件为FontDialog,设置颜色的控件为ColorDialog.这两个控件的使用和OpenFileDialog(打开文件)及FolderBroswerDialog(打开文件夹)的使用类似. ...

  5. nerual style 执行命令

    python neural_style.py --content ./examples/4-content.jpg --styles ./examples/4-faguo-style.jpg --ou ...

  6. Gradle笔记系列(二)

    1.使用Gradle命令行 在这篇博客中,我们将简要介绍Gradle命令行的使用. 1.1 执行多任务 通过在命令行列出每个任务(task),你可以在一次构建(build)中执行多个任务.例如,命令g ...

  7. c# DESEncrypt 加密、解密算法

    using System; using System.Security.Cryptography; using System.Text; namespace AttendService { publi ...

  8. 持续集成工具Jenkins学习总结

    概述 持续集成(Continuous Integration,简称CI)是一种软件开发实践,团队开发人员每次都通过自动化的构建(编译.发布.自动化测试)来验证,从而尽早的发现集成错误.持续集成最大的优 ...

  9. odoo 10 生产自动领料

    分析源码 当 原材料的 补货规则 的 "补货位置" location_id 是 生产单 的 原材料 "目标位置 ", 并且 原材料的 补货规则 的 " ...

  10. JS各种算法小例子

    <!DOCTYPE html><html><head>    <title>js</title>    <meta charset=& ...