0

A と B の 2 つのファイルがあります。A には 17000 のレコードが含まれ、B にも約 17000 のレコードが含まれます。B の各レコードを A と比較したいのですが、A で一致しない B のすべてのレコードを他のファイルに送信する必要があります。A の内容を配列に入力し、B からレコードを 1 つずつ抽出し、バイナリ検索を使用して A で検索しようとしています。

検索にかかる時間には満足していますが、配列にレコードを入力するステップにはほとんどの時間がかかります (約 80%)。今度はどうやって減らすの??

これにはpowershellを使用しています。

4

1 に答える 1

2

Compare-Object次のコマンドレットを試してください。

$a = Get-Content a.txt
$b = Get-Content b.txt

Compare-Object -ReferenceObject $a -DifferenceObject $b

結果の SideIndicator プロパティを見てください。「<=」はエントリが $a (ReferenceObject) にのみ存在することを意味し、「=>」はエントリが $b (DifferenceObject) に存在することを意味します。その後、Where-Object を使用して結果をフィルター処理し、InputObject を別のファイルに書き込むことができます。

于 2013-08-21T10:17:13.777 に答える