PDA

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


Kzer-Za
03-10-2011, 14:32
Добрый день всем!

Ситуация такова: есть два файла в формате plain text, в которых по несколько тысяч коротких строк. Назовем их, допустим, 1.txt и 2.txt. Мне нужно их сравнить и удалить из 1.txt все строки, которые есть в 2.txt.

WinMerge не подходит, потому что если строки в этих файлах идут в разном порядке, то он одинаковые строки подцвечивает как изменения – просто потому что они на разном месте. А дело как раз в том, что основное содержимое в файлах разное, поэтому те строки, которые все же совпадают, естественно идут в разных местах.

Т.е. мне нужно, чтобы программа брала строку из файла 2, делала поиск по всему тексту файла 1 и, если эта строка там встречается, удаляла ее. Вручную это делать с помощью поиска в Ворде слишком долго – там по несколько тысяч записей. Может, есть программа, которая позволяет так сделать? Или, может, кто-нибудь знает, как написать макрос для Ворда, который будет это выполнять?

RostVY
03-10-2011, 15:56
загнать в базу данных и сделать что-то типа

delete from table1 where fld in (select distinct fld from table2);

select fld from table1;

Kzer-Za
03-10-2011, 19:06
Я раньше с базами данных не работал, поэтому вы не могли бы объяснить конкретнее?

Iska
03-10-2011, 20:11
Kzer-Za, попробуйте так:
findstr.exe /l /x /v /g:2.txt 1.txt >Result.txt

Kzer-Za
04-10-2011, 11:50
Работает! Работает! :) Еще и встроенными средствами винды, ничего лишнего устанавливать не нужно! Iska, you are a lifesaver! :) Серьезно, спасибо, ты меня здорово выручил!




© OSzone.net 2001-2012