2016-08-01 162 views
3

Old.txt包含grep命令窗口

apple 
orange 
banana 

而且New.txt包含

apple 
orange 
banana 
grape 
lemon 

我可以访问哪些使用grep命令添加到New.txt新的内容。现在

grep -Fxvf Old.txt New.txt > difference.txt 

difference.txt包含

grape 
lemon 

在Windows中,我曾尝试

findstr /rvc:Old.txt New.txt > difference.txt 

找到差异,但其附加的Old.txt内容了。我如何在Windows中编写等效命令?

回答

3

您可以使用DOSfindstr具有以下标志: -

/v : Prints only lines that do not contain a match. 
/g: file : Gets search strings from the specified file. 

该命令会是这样的: -

C:\Users\dude\Desktop>findstr /v /g:Old.txt New.txt >difference.txt 

现在正在检查使用type命令文件输出;相当于Linuxcat,我们可以看到: -

C:\Users\dude\Desktop>type difference.txt 
grape 
lemon 
+0

Inian感谢它的工作。我遇到了一个新问题。当Old.txt为空并且New.txt包含一些内容时它不起作用 –

+0

@MusieMeressa:'/ g:'标志之后的文件必须有一些条目,正如你在上面的例子中看到的那样,它看到每一行从'Old.txt'并对另一个文件执行反转搜索。因此,只有非空文件必须位于'/ g:'标志下才能使此解决方案起作用。所以,你可以试试'findstr/v /g:New.txt old.txt',现在'New.txt'确实有条目,这个就行了! – Inian

+0

即使我更改了订单,但其中一个文件为空时它不起作用。无论如何,谢谢。 –

1

除非您被限制在您的PC上安装任何东西,否则考虑安装类似* nix的工具的端口,如GnuWin32并继续使用grep。

+0

你是对的,我不会允许在PC –

+0

上安装任何东西,或使用最近添加到Windows 10的Linux命令(假设这是操作系统) –