使用grep比较文件中的差异似乎在Windows中不起作用

时间:2012-12-06 18:02:37

标签: windows grep cygwin

几天前我安装了cygwin。我检查了grep的安装,因为我想在emacs中使用它。当我想获得两个文件之间的区别时,它似乎没有工作,所以我尝试了最简单的情况,只使用cygwin终端。

我有两个文件 temp1中

1
2
3
4
5
6
7
8
9
0

TEMP2

2
3
4
5

环顾四周后,我发现正确的方法是这样的:

grep -v -f temp2 temp1

当我在cygwin中这样做时,我得到了

1
2
3
4
5
6
7
8
9
0

如果我在linux中这样做,我会得到正确的输出

1
6
7
8
9
0

为什么会发生这种情况?它可能真的很傻但我似乎无法找到原因,我找不到类似的东西。

1 个答案:

答案 0 :(得分:0)

我的第一个想法是你的文件有windows行结尾(CRLF)而不是unix / linux行结尾(LF),这就是搞乱grep解析文件的能力。试试这个:

dos2unix temp1 temp2

然后再次尝试你的grep语句。

额外注意事项:

如果你要广泛使用cygwin,我强烈建议你给自己一个更好的文本编辑器,记事本或wordpad。

notepadd++是一个选项,可以轻松地让您在众多其他功能中使用windows或unix / linux行结尾。