0

我有两个制表符分隔的文件,每个文件有 15 列,n 和 m 行。

文件 1 中的行数大于文件 2 的行数,例如文件 1 有 15 行文件 2 中不存在

我怎样才能找出这些行?

谢谢

4

3 回答 3

2

comm命令将查找任一文件独有的行或两者共有的行。

comm -23 <( sort file1 ) <( sort file2 )

将仅打印 file1 中的行(仅在 file2 中的行和公共行由-2and-3选项抑制。必须对文件进行排序;它们如何排序并不重要,只要它们都在同一个键上排序并以同样的方式。

于 2013-03-25T13:02:35.490 回答
1

这有帮助吗?

awk 'NR==FNR{a[$0];next}!($0 in a)' file2 file1
于 2013-03-25T12:49:32.747 回答
1

join命令可能会有所帮助,尤其是-a选项:

-a FILENUM 打印来自文件 FILENUM 的不可配对行,其中 FILENUM 为 1 或 2,对应 FILE1 或 FILE2

于 2013-03-25T13:09:01.943 回答