Powershell 如果一个文件中的字符串与第二个文件中的字符串完全相同,如何删除其中的字符串?

Powershell 如果一个文件中的字符串与第二个文件中的字符串完全相同,如何删除其中的字符串?,powershell,Powershell,我有两个文本文件。ABigfile.txt和ASmallFile.txt BigFile.txt示例: TEXT1 TEXT2 TEXT3 文本4 SmallFile.txt示例: TEXT2 文本3 如何从BigFile中删除SmallFile.txt中包含的所有文本字符串,最有效的方法是什么 BigFile.txt输出 TEXT1 TEXT4可能需要一些错误检查,但您可以尝试以下方法 $bigfile = Get-Content C:\temp\BigFile.txt $smallfile

我有两个文本文件。A
Bigfile.txt
和A
SmallFile.txt

BigFile.txt示例:
TEXT1
TEXT2
TEXT3
文本4

SmallFile.txt示例:
TEXT2
文本3

如何从BigFile中删除SmallFile.txt中包含的所有文本字符串,最有效的方法是什么

BigFile.txt输出
TEXT1

TEXT4可能需要一些错误检查,但您可以尝试以下方法

$bigfile = Get-Content C:\temp\BigFile.txt
$smallfile = Get-Content C:\temp\SmallFile.txt
$difference = Compare-Object $bigfile $smallfile | % {$_.inputobject}
$difference | Set-Content c:\temp\NewBigFile.txt

可能需要一些错误检查,但您可以尝试类似的方法

$bigfile = Get-Content C:\temp\BigFile.txt
$smallfile = Get-Content C:\temp\SmallFile.txt
$difference = Compare-Object $bigfile $smallfile | % {$_.inputobject}
$difference | Set-Content c:\temp\NewBigFile.txt
当您测试并确认结果正常时:

$BigFile = Get-Content -Path BigFile.txt
$BigFile | ? { $_ -notin (Get-Content -Path SmallFile.txt) } | Out-File -FilePath D:\BigFile.txt
当您测试并确认结果正常时:

$BigFile = Get-Content -Path BigFile.txt
$BigFile | ? { $_ -notin (Get-Content -Path SmallFile.txt) } | Out-File -FilePath D:\BigFile.txt

谢谢你的代码。有一个问题。当SmallFile.txt包含未包含在BigFile.txt中的字符串时,它会将这些字符串添加到一个BigFile中。
get help compare object
感谢您的代码。有一个问题。当SmallFile.txt包含未包含在BigFile.txt中的字符串时,它会将这些字符串添加到BigFile中。
获取帮助比较对象
感谢您的帮助。看起来您的代码正在运行。唯一的问题是,当一个大文件有10000行,而一个小文件有1000行时,运行需要很多时间。它适用于3000行大文件和5行小文件。任何IDE如何使其更高效地运行?正确,这不是最有效的方法。特别是对于大型文件,您需要使用.Net方法的更复杂的代码。有关更适合大文件的替代方案,请参见此问题:感谢您的帮助。看起来您的代码正在运行。唯一的问题是,当一个大文件有10000行,而一个小文件有1000行时,运行需要很多时间。它适用于3000行大文件和5行小文件。任何IDE如何使其更高效地运行?正确,这不是最有效的方法。特别是对于大型文件,您需要使用.Net方法的更复杂的代码。有关更适合大文件的备选方案,请参见此问题: