文件准备

创建两个文件,分别为a.txt和b.txt,它们所含内容分别为:

a.txt b.txt
1-wfhune
2-chdamnsbchj
3-uyr92fiubkqw
5-cgvdnsb
2-djyv
4-dvcahsgdb
5-wvchdfyt

普通用法,整行对比

命令 diff a.txt b.txt grep -f a.txt b.txt grep -vf a.txt b.txt
解释 比较两个文件 取两个文件中都有的行 取b文件中有,但a文件中没有的行
结果 1,4c1,3
< 1-wfhune
< 2-chdamnsbchj
< 3-uyr92fiubkqw
< 5-cgvdnsb
---
> 2-djyv
> 4-dvcahsgdb
2-djyv
4-dvcahsgdb
5-wvchdfyt

高级用法,每行关键部分对比

回顾一下两个文件中的内容,格式都是 x-yyyy这种格式,我们认为x为键,yyyy为值。现在我们只想比较x,而不关心yyyy。

该怎么办呢?

命令 grep -vf <(cut -d - -f 1 a.txt) <(cat b.txt) grep -vf <(awk -F"-" '{print $1}' a.txt) <(cat b.txt)
解释 <() 用于命令嵌套。
cut -d - -f 1 a.txt,其中参数-d 用于定义分隔符,参数-f 用于定义分割后的第几段文本。
这里只是用awk命令替换了cut命令,作用相同。
awk 的 -F参数用于定义分隔符,printf $X 取出了分割后的第X段文本。
结果 4-dvcahsgdb 4-dvcahsgdb

Linux命令比较文件内容的更多相关文章

  1. Linux命令 查看文件内容

    cat [功能说明] 查看文件的内容  #cat本身是一个串接命令,把指定一个或多个源文件的内容,利用>符号重定向到目标文件中,如果不指定重定向文件,则默认在标准输出设备上显示.此时,可以利用c ...

  2. Linux命令查看文件内容

    cat:一次性顺序显示文件所有内容和 cat filename tac:一次性倒序显示文件所有内容和 tac filename head:显示文件开头的若干行内容 head -n filename t ...

  3. linux命令按文件内容查找文件

    [root@hn web]# find /app/code/hzg/web/ -type f -name "*.php" | xargs grep "slog"

  4. 菜鸟学Linux命令:cat命令 查看文件内容

    cat命令的用途是连接文件或标准输入并打印. 这个命令常用来显示文件内容,或者将几个文件连接起来显示,或者从标准输入读取内容并显示,它常与重定向符号配合使用. Linux下查看文件内容的方式很多:vi ...

  5. [转]linux查看日志文件内容命令

    linux查看日志文件内容命令tail.cat.tac.head.echo tail -f test.log你会看到屏幕不断有内容被打印出来. 这时候中断第一个进程Ctrl-C, ---------- ...

  6. linux查看日志文件内容命令tail、cat、tac、head、echo

    linux查看日志文件内容命令tail.cat.tac.head.echo tail -f test.log你会看到屏幕不断有内容被打印出来. 这时候中断第一个进程Ctrl-C, ---------- ...

  7. 【Linux】linux查看日志文件内容命令tail、cat、tac、head、echo

    linux查看日志文件内容命令tail.cat.tac.head.echo tail -f test.log你会看到屏幕不断有内容被打印出来. 这时候中断第一个进程Ctrl-C, ---------- ...

  8. linux查看日志文件内容命令tail、cat、tac、head、echo、vi

    linux查看日志文件内容命令tail.cat.tac.head.echo tail -f test.log你会看到屏幕不断有内容被打印出来. 这时候中断第一个进程Ctrl-C, ---------- ...

  9. linux命令---查找文件中的内容

    linux命令---查找文件中的内容   [yang@localhost ~]$ cat 1.txt |egrep '123456789|second'-------匹配123456789或者seco ...

随机推荐

  1. ubuntu linux重置密码

    (和网上的有点不一样,记录一下) 1)重启系统,同时长时间按住shift键进入grub菜单:GNU GRUB version 1.99-12ubuntu5(如图一) 2)选择Ubuntu, with ...

  2. 数据结构与算法(C/C++版)【排序】

    第八章<排序>  一.直接插入排序  //直接插入排序 //算法思想:每趟将一个待排的关键字按照其值的大小插入到已经排好的部分有序序列的适当位置上,直到所有待排关键字都被插入到有序序列中为 ...

  3. 正睿OI DAY3 杂题选讲

    正睿OI DAY3 杂题选讲 CodeChef MSTONES n个点,可以构造7条直线使得每个点都在直线上,找到一条直线使得上面的点最多 随机化算法,check到答案的概率为\(1/49\) \(n ...

  4. WCF客户端简单动态配置服务地址

    本来想实现WCF服务无论放到哪个机器上,我的客户端都不需要重新编译,只需要配置一个服务的地址即可.各种百度找到了很多解决方案.但都比较繁琐,(只要因为个人小菜看不懂太多的代码)我对WCF内部机制还不了 ...

  5. Go中使用seed得到相同随机数的问题

    1. 重复的随机数 废话不多说,首先我们来看使用seed的一个很神奇的现象. func main() { for i := 0; i < 5; i++ { rand.Seed(time.Now( ...

  6. mysql基础操作 增删改查

    如何使用终端操作数据库 如何登录数据库 mysql -u用户名 -p密码 比如: mysql -uroot -p123456 如何查询数据库服务器中所有的数据库 show databases; 如何选 ...

  7. docker相关概念介绍

    关键词:docker容器与docker镜像 他们之间的关系是docker容器通过docker镜像来创建 docker镜像就是些像ubuntu15.10,ubuntu14.2一样的系统 docker容器 ...

  8. springmvc引入静态资源文件

    如果web.xml中配置的DispatcherServlet请求映射为“/”, springmvc将捕获web容器所有的请求,当然也包括对静态资源的请求.springmvc会将他们当成一个普通请求处理 ...

  9. numpy.rollaxis函数

    numpy.rollaxis numpy.rollaxis 函数向后滚动特定的轴到一个特定位置,格式如下: numpy.rollaxis(arr, axis, start) 参数说明: arr:数组 ...

  10. Django-admin站点管理的详细使用

    使用Django的管理模块,需要按照如下步骤操作: 管理界面本地化 创建管理员 注册模型类 自定义管理页面 1 管理界面本地化 在settings.py中设置语言和时区 LANGUAGE_CODE = ...