几天前我安装了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
为什么会发生这种情况?它可能真的很傻但我似乎无法找到原因,我找不到类似的东西。
答案 0 :(得分:0)
我的第一个想法是你的文件有windows行结尾(CRLF)而不是unix / linux行结尾(LF),这就是搞乱grep解析文件的能力。试试这个:
dos2unix temp1 temp2
然后再次尝试你的grep语句。
额外注意事项:
如果你要广泛使用cygwin,我强烈建议你给自己一个更好的文本编辑器,记事本或wordpad。
notepadd++是一个选项,可以轻松地让您在众多其他功能中使用windows或unix / linux行结尾。