Linux命令比较文件内容

Posted xiaoxi666

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux命令比较文件内容相关的知识,希望对你有一定的参考价值。

文件准备

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

a.txtb.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.txtgrep -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命令比较文件内容的主要内容,如果未能解决你的问题,请参考以下文章

linux中,都有哪些命令是比较好用的呢?

linux文件比对diff命令

linux基础之常见的文件查看命令

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

Linux 下比较文件内容并相同部分不同部分

linux 查看文件内容的几种命令