Linux命令比较文件内容
文件准备
创建两个文件,分别为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命令比较文件内容的更多相关文章
- Linux命令 查看文件内容
cat [功能说明] 查看文件的内容 #cat本身是一个串接命令,把指定一个或多个源文件的内容,利用>符号重定向到目标文件中,如果不指定重定向文件,则默认在标准输出设备上显示.此时,可以利用c ...
- Linux命令查看文件内容
cat:一次性顺序显示文件所有内容和 cat filename tac:一次性倒序显示文件所有内容和 tac filename head:显示文件开头的若干行内容 head -n filename t ...
- linux命令按文件内容查找文件
[root@hn web]# find /app/code/hzg/web/ -type f -name "*.php" | xargs grep "slog"
- 菜鸟学Linux命令:cat命令 查看文件内容
cat命令的用途是连接文件或标准输入并打印. 这个命令常用来显示文件内容,或者将几个文件连接起来显示,或者从标准输入读取内容并显示,它常与重定向符号配合使用. Linux下查看文件内容的方式很多:vi ...
- [转]linux查看日志文件内容命令
linux查看日志文件内容命令tail.cat.tac.head.echo tail -f test.log你会看到屏幕不断有内容被打印出来. 这时候中断第一个进程Ctrl-C, ---------- ...
- linux查看日志文件内容命令tail、cat、tac、head、echo
linux查看日志文件内容命令tail.cat.tac.head.echo tail -f test.log你会看到屏幕不断有内容被打印出来. 这时候中断第一个进程Ctrl-C, ---------- ...
- 【Linux】linux查看日志文件内容命令tail、cat、tac、head、echo
linux查看日志文件内容命令tail.cat.tac.head.echo tail -f test.log你会看到屏幕不断有内容被打印出来. 这时候中断第一个进程Ctrl-C, ---------- ...
- linux查看日志文件内容命令tail、cat、tac、head、echo、vi
linux查看日志文件内容命令tail.cat.tac.head.echo tail -f test.log你会看到屏幕不断有内容被打印出来. 这时候中断第一个进程Ctrl-C, ---------- ...
- linux命令---查找文件中的内容
linux命令---查找文件中的内容 [yang@localhost ~]$ cat 1.txt |egrep '123456789|second'-------匹配123456789或者seco ...
随机推荐
- 使用path监听指定文件系统的变化
在以前的JAVA版本中,如果程序需要检测文件的变化,那么需要开辟一个线程每隔一段时间去遍历一次指定的目录,如果发现此次遍历结果和上次不同,那么就认为文件变动了 ,这样的方式非常繁琐,JAVA 7之后的 ...
- Mybaits-从零开始-Spring、Spring MVC、MyBatis整合(未万待续)
Spring.Spring MVC.MyBatis整合(未万待续)
- sort,uniq,wc,tr
sort (选项)(参数) sort是用来排序数据的. 以下面这个文本为例 [root@bogon ~]# cat a 123 4567 88 abc aaa AAA jk 777 777 ...
- 不吹不黑,今天我们来聊一聊 Kubernetes 落地的三种方式
作者 | 王国梁 Kubernetes 社区成员与项目维护者原文标题<Kubernetes 应用之道:让 Kubernetes落地的"三板斧">,首发于知乎专栏:进击 ...
- 自适应布局display:-webkit-box的用法
在web布局中,我们经常使用的是display:inline-block,display:flex,这些,但其实在进行移动端设备自适应布局中,-webkit-box布局更加合适 不同的浏览器有不同的前 ...
- Zookeeper监控(Zabbix)
一直在弄监控,这些个中间件Zookeeper.Kafka......,平时也只知道一点皮毛,也就搭建部署过,没有真正的用过,一般都是大数据的同学在用,作为运维人员我需要对他做一个监控,由于对他不是 ...
- Laravel 5 中文文档 CHM 版
使用 Microsoft HTML Help Workshop 做了一个 Laravel 5.4 中文文档的 CHM 版本. 百度网盘下载地址:http://pan.baidu.com/s/1dFN2 ...
- .net core session的使用步骤
步骤 操作 备注 1 Microsoft.AspNetCore.Session Microsoft.AspNetCore.Http.Extensions nuget安装包 2 ConfigureS ...
- LitePal的存储操作
传统的存储数据方式 其实最传统的存储数据方式肯定是通过SQL语句拼接字符串来进行存储的,不过这种方式有点过于“传统”了,今天我们在这里就不讨论这种情况.实际上,Android专门提供了一种用于存储 ...
- 你也可以写聊天程序 - C# Socket学习1
简述 我们做软件工作的虽然每天都离不开网络,可网络协议细节却不是每个人都会接触和深入了解.我今天就来和大家一起学习下Socket,并写一个简单的聊天程序. 一些基础类 首先我们每天打开浏览器访问网页信 ...