grep命令窗口
问题描述:
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中编写等效命令?
答
您可以使用DOS
findstr
具有以下标志: -
/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
命令文件输出;相当于Linux
cat
,我们可以看到: -
C:\Users\dude\Desktop>type difference.txt
grape
lemon
答
除非您被限制在您的PC上安装任何东西,否则考虑安装类似* nix的工具的端口,如GnuWin32并继续使用grep。
+0
你是对的,我不会允许在PC –
+0
上安装任何东西,或使用最近添加到Windows 10的Linux命令(假设这是操作系统) –
Inian感谢它的工作。我遇到了一个新问题。当Old.txt为空并且New.txt包含一些内容时它不起作用 –
@MusieMeressa:'/ g:'标志之后的文件必须有一些条目,正如你在上面的例子中看到的那样,它看到每一行从'Old.txt'并对另一个文件执行反转搜索。因此,只有非空文件必须位于'/ g:'标志下才能使此解决方案起作用。所以,你可以试试'findstr/v /g:New.txt old.txt',现在'New.txt'确实有条目,这个就行了! – Inian
即使我更改了订单,但其中一个文件为空时它不起作用。无论如何,谢谢。 –