@snrt5osp
Пример:
Содержимое файла file_0.txt:
j43j72h531
b2x891ow52
rr35986z77
x77jm9lp7g
q0pprcp52yawc10
wh3h476m2u
e7h0cv6rh5
5l7i700939
l3ri0p8p2f
l1h14no300
Содержимое файла file_1.txt:
l1h14no300
j2615a2e0y
815555v33h
q0pprcp52yawc10
2vhhh0ugxv
rc2jl8lhdl
79qn640321
b2x891ow52
Необходимое содержимое файла file_2.txt после работы программы/команды:
b2x891ow52
q0pprcp52yawc10
l1h14no300
Я пытался это сделать с помощью CMD команды findstr но в выводе получал почему-то не все совпадающие строки, хотя их наличие я проверял вручную. На процессоре i5-8400 скорость сравнения 100’000 строк в одном и 100’000 в другом файле меня вполне устраивает: 10-15 секунд.
Подскажите команду CMD/PowerShell или программу, чтобы сделать задуманное.
Решения вопроса 0
Ответы на вопрос 4
@MaxKozlov
$c = [string[]](Get-Content . .txt)
$sk1 = [System.Collections.Generic.HashSet[string]]::new($c)
$c = [string[]](Get-Content .1.txt)
$sk2 = [System.Collections.Generic.HashSet[string]]::new($c)
$sk1.IntersectWith($sk2)
$sk1
на ваших данных выдало то что надо (правда, не сортированное в том же порядке)
Ну и по памяти — всё в память грузится
@AAT666
$f0 = Get-Content -Path C:tmpfile_0.txt
$f1 = Get-Content -Path C:tmpfile_1.txt
[system.linq.enumerable]::Intersect([object[]]$f0, [object[]]$f1) | Out-File -FilePath C:tmpfile_2.txt
@kalapanga
Findstr здесь просится. Тем более, что по скорости устраивает.
@azarij
(Compare-Object -ReferenceObject (get-content c:test1.txt) -DifferenceObject (get-content c:test .txt) -ExcludeDifferent -IncludeEqual).inputobject | out-file c:test2.txt