PDA

Показать полную графическую версию : Сравнение файлов


Asdshka
10-12-2018, 23:02
Здравствуйте необходим батник, который сравнивает два текстовых файла и выводит уникальные строки в третий. Только есть небольшой нюанс, необходимо сравнивать с файлом в 10GB и больше
1>3.txt findstr /v /g:1.txt 2.txt
Либо вообще не работает с большими файлами, либо очень долго

Iska
10-12-2018, 23:33
Либо вообще не работает с большими файлами, либо очень долго »
Ну, дык, десять гигабайт — они и в Африке десять гигабайт, не будет тут быстро.

Исходный файл какого примерно размера? Каково примерное содержимое файлов? Посмотрите, нельзя ли будет использовать ADO или Log Parser, например.

Asdshka
11-12-2018, 08:17
Ну, дык, десять гигабайт — они и в Африке десять гигабайт, не будет тут быстро.
Исходный файл какого примерно размера? Каково примерное содержимое файлов? Посмотрите, нельзя ли будет использовать ADO или Log Parser, например. »
Файл, который сравниваем может быть любого размера, но как правило до 1GB. Файл, с которым сверяем 10GB и выше.
Содержимое файлов:
login@domain.url:password
login@domain.url:password
login@domain.url:password
login@domain.url:password
login@domain.url:password
login@domain.url:password
login@domain.url:password
login@domain.url:password
login@domain.url:password
login@domain.url:password

alpap
11-12-2018, 16:00
Asdshka,

вася@domain.url:123
петя@domain.url:456
оля@domain.url:111
гена@domain.url:222


оля@domain.url:111
миша@domain.url:321
гена@domain.url:222
маша@domain.url:654

а что дает в конечном итоге такой вывод:

Этого нет в "1.txt"
миша@domain.url:321
маша@domain.url:654

Этого нет в "2.txt"
вася@domain.url:123
петя@domain.url:456

при таких размерах это тоже может иметь сотни и тысячи строк, это визуально одна каша и никакой привязки уже нет при таком количестве.

делалось таким кодом (но в данной ситуации при указанных размерах это конечно не ваш случай)

@echo off
>>"3.txt" (
echo Этого нет в "1.txt"
findstr /vlg:"1.txt" "2.txt"
echo:
echo Этого нет в "2.txt"
findstr /vlg:"2.txt" "1.txt"
)
pause

DJ Mogarych
11-12-2018, 16:35
Powershell:
Compare-Object -referenceobject $(get-content "D:\FCA\FCA_node_final.txt") -differenceobject $(get-content "D:\FCA\FCA.txt")
https://stackoverflow.com/questions/31183017/comparing-two-text-files-contents-using-powershell

Busla
11-12-2018, 17:07
DJ Mogarych, даже интересно, как оно себя покажет на файле в 10 Гб. И что будет, если запустить на 32-битной системе :)

Iska
11-12-2018, 17:32
Ну, будем надеяться, что, ежели коллега DJ Mogarych сам на таких размерах не пробовал, то автор попробует и нам расскажет.

DJ Mogarych
12-12-2018, 15:42
Да хорошо покажет, а результаты можно фильтровать.




© OSzone.net 2001-2012