0

几天前我安装了cygwin。我检查了 grep 是否已安装,因为我想在 emacs 中使用它。当我想获得两个文件之间的差异时,它似乎不起作用,所以我尝试了仅使用 cygwin 终端不起作用的最简单情况。

我有两个文件 temp1

1
2
3
4
5
6
7
8
9
0

温度2

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

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

4

1 回答 1

0

我的第一个想法是你的文件有 windows 行尾 (CRLF) 而不是 unix/linux 行尾 (LF),这会影响 grep 解析文件的能力。尝试运行这个:

dos2unix temp1 temp2

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

额外说明:

如果您要广泛使用 cygwin,我强烈建议您为自己准备一个比记事本或写字板更好的文本编辑器。

notepadd++是一个选项,可让您轻松使用 windows 或 unix/linux 行尾,以及无数其他功能。

于 2012-12-06T20:01:13.710 回答