Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Сравнение файлов (http://forum.oszone.net/showthread.php?t=338165)

Asdshka 10-12-2018 23:02 2845272

Сравнение файлов
 
Здравствуйте необходим батник, который сравнивает два текстовых файла и выводит уникальные строки в третий. Только есть небольшой нюанс, необходимо сравнивать с файлом в 10GB и больше
PHP код:

1>3.txt findstr //g:1.txt 2.txt 

Либо вообще не работает с большими файлами, либо очень долго

Iska 10-12-2018 23:33 2845275

Цитата:

Цитата Asdshka
Либо вообще не работает с большими файлами, либо очень долго »

Ну, дык, десять гигабайт — они и в Африке десять гигабайт, не будет тут быстро.

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

Asdshka 11-12-2018 08:17 2845298

Цитата:

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

Файл, который сравниваем может быть любого размера, но как правило до 1GB. Файл, с которым сверяем 10GB и выше.
Содержимое файлов:
PHP код:

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 2845363

Asdshka,
1.txt

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

2.txt

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

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

Этого нет в "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 2845371

Powershell:
Код:

Compare-Object -referenceobject $(get-content "D:\FCA\FCA_node_final.txt") -differenceobject $(get-content "D:\FCA\FCA.txt")
https://stackoverflow.com/questions/...ing-powershell

Busla 11-12-2018 17:07 2845378

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

Iska 11-12-2018 17:32 2845385

Ну, будем надеяться, что, ежели коллега DJ Mogarych сам на таких размерах не пробовал, то автор попробует и нам расскажет.

DJ Mogarych 12-12-2018 15:42 2845548

Да хорошо покажет, а результаты можно фильтровать.


Время: 23:48.

Время: 23:48.
© OSzone.net 2001-