在 Unix 中比较两个文件

在 Unix 中比较两个文件

考虑如下两个文件:


$ cat f1.txt
col_name        data_type       comment
name                    string
age                     int
income                  int
access_count1           int

$ cat f2.txt
col_name        data_type       comment
name                    string
city                    string
income                  int
edr                     time
access_count1           int
bcwer                   int

我需要比较两个文件(不是逐行),因为任何行都可以有新值,并显示:

  1. f2.txt 中的新值
  2. f1.txt 中的任何更新值

我努力了:


$ diff -y --suppress-common-lines f1.txt f2.txt
age                     int                                   | city                    string
                                                              > edr                     time
                                                              | bcwer                   int

它不是可读的格式。

答案1

如果您-y在声明中删除该选项diff,您应该得到:

3c3
< age                     int
---
> city                    string
4a5
> edr                     time
5a7
> bcwer                   int

如果你不想要所有无关的信息,你可以grep得到一个漂亮、干净的结果,如下所示:

$ diff --suppress-common-lines f1.txt f2.txt | grep -e "^[<>]"
< age                     int
> city                    string
> edr                     time
> bcwer                   int

相关内容