我的博客

awk输出两个文件不同的行

目录

今天机房的一台 dell 刀片机出了故障,只能进 Emergency 模式。提示有一个错误日志需要拷贝,1900 多行。只能使用 dell 的一个控制软件的虚拟屏幕连接。

网络完全不可用。但是可以挂在文件系统镜像,所以使用 ultra ISO 生成了一个 linux 的镜像文件,挂在上去。把文件 cp 进去。

我希望查看挂载前和挂在后 dev 目录的差别。但是没有 diff 命令。只有 awk。

awk 输出两个文件不同的行

方法一

1
awk 'NR==FNR{x[$0]}NR!=FNR{if(x[$0]){}else{print $0}}' x1 x2

NR 是当前行数

FNR 是当前文件行数,

他们相等说明在第一个文件。

我们把第一个文件的每一行都存到 x 字典中。

第二个文件再看每一行是否在字典中。如果不再就输出。

方法二

1
awk 'ARGIND==1{x[$0]}ARGIND=2{if(x[$0]){}else{print $0}}' x1 x2

ARGIND 是第几个文件。

评论无需登录,可以匿名,欢迎评论!