Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Батник для сравнения 2-х текстовых файлов по строчно.

Ответить
Настройки темы
CMD/BAT - Батник для сравнения 2-х текстовых файлов по строчно.

Новый участник


Сообщения: 3
Благодарности: 0

Профиль | Отправить PM | Цитировать


Всем привет!
Нужен батник для сравнения 2-х текстовых файлов по строчно и вывод различий в отдельный файл.

Например:
Есть 2 текстовых файла (1.txt , 2.txt)

1.txt:
CLIENT=1 LIMIT=100
CLIENT=2 LIMIT=200
CLIENT=3 LIMIT=300

2.txt:
CLIENT=1 LIMIT=100
CLIENT=2 LIMIT=250
CLIENT=3 LIMIT=350

Нужно прочитать эти 2 файла, найти изменения и создать файл 3.txt
Который выглядел бы так:

3.txt:
CLIENT=2 LIMIT=250
CLIENT=3 LIMIT=350

И как быть в тех случаях когда строчки могут быть смещены:
1.txt:
CLIENT=1 LIMIT=100
CLIENT=10 LIMIT=500
CLIENT=2 LIMIT=200
CLIENT=3 LIMIT=300

2.txt:
CLIENT=1 LIMIT=100
CLIENT=2 LIMIT=250
CLIENT=3 LIMIT=350
CLIENT=10 LIMIT=500

Ведь результат должен получиться тотже:
3.txt:
CLIENT=2 LIMIT=250
CLIENT=3 LIMIT=350

PS. Есть конечно программа DiffText , она сравнивает два файла и выделяет отличия, но хотелось автоматизировать процесс ))
Пробовал fc но она выдает немного не тот результат, который хотелось бы получить...

Отправлено: 10:22, 16-04-2013

 

Ветеран


Сообщения: 1758
Благодарности: 966

Профиль | Цитировать


Код: Выделить весь код
1>3.txt findstr /v /g:1.txt 2.txt
Это сообщение посчитали полезным следующие участники:

Отправлено: 21:21, 20-04-2013 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 3
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата Foreigner:
Код:
1>3.txt findstr /v /g:1.txt 2.txt »
Работает, коротко и просто )
Но, столкнулся вот с какой проблемой, подложил боевой файл и получил ошибку FINDSTR: Слишком длинная строка поиска. Стал экспериментировать и получается что если строка длиннее 127 символов возникает ошибка. Возможно както обойти это ограничение?

Отправлено: 14:55, 22-04-2013 | #3


Ветеран


Сообщения: 1758
Благодарности: 966

Профиль | Цитировать


Никогда не доводилось работать с такими длинными строками с помощью findstr.exe

Попробуйте с помощью PowerShell:
Код: Выделить весь код
compare-object $(gc 1.txt) $(gc 2.txt) | % { 

    if ( $_.sideindicator -eq "=>" ) { $_.inputobject }

} | out-file -encoding "default" 3.txt
Или с помощью grep
Код: Выделить весь код
1>3.txt grep -vUf 1.txt 2.txt

Отправлено: 17:50, 22-04-2013 | #4



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Батник для сравнения 2-х текстовых файлов по строчно.

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Батник для сравнения файлов orgia Скриптовые языки администрирования Windows 31 02-04-2013 14:01
Прочие - Программа для сравнения файлов в различных каталогах shadowmaster63 Программное обеспечение Windows 3 14-04-2010 10:28
Алгоритм сравнения бинарных файлов Savant Программирование и базы данных 2 04-05-2005 09:57
Запись/чтение в/из файла по строчно + удаление элементов... Georgiy Вебмастеру 5 18-07-2004 14:40




 
Переход