0

我有两个几乎相同的文件,相同数量的行,它是一个代码。我正在尝试创建这两个文件之间的公共行的文件,并且在行不同的地方也有空白行。我尝试使用comm,它工作得很好,但没有在坏行上提供我需要的空白行,它只是消除了这些行并且公共文件更短(行数)。

这是我尝试过的:

comm -1 -2 file1 file2
4

1 回答 1

1

comm需要排序的文件。因此,您可以像这样使用命令替换:

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

如果要跳过空行(空格),则:

comm -12 <(grep -Ev '^[ ]+$' file1 | sort) <(grep -Ev '^[ ]+$' file2 | sort)

要跳过包含空格或制表符的空行:

comm -12 <(grep -Ev $'^[ \t]+$' file1 | sort) <(grep -Ev $'^[ \t]+$' file2 | sort)
于 2017-10-05T04:00:26.883 回答