前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux命令比较文件内容

Linux命令比较文件内容

作者头像
xiaoxi666
发布2019-11-04 02:27:28
5.4K0
发布2019-11-04 02:27:28
举报
文章被收录于专栏:xiaoxi666的专栏xiaoxi666的专栏

文件准备

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

a.txt

b.txt

1-wfhune2-chdamnsbchj3-uyr92fiubkqw5-cgvdnsb

2-djyv4-dvcahsgdb5-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-djyv4-dvcahsgdb5-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

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-11-01 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文件准备
  • 普通用法,整行对比
  • 高级用法,每行关键部分对比
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档