PDA

Показать полную графическую версию : [решено] Сравнение 2-х текстовых файлов и удаление дубликатов строк в 1-м файле.


Uragan66
26-05-2019, 12:24
Добрый день!
Появилась небольшая проблемка по сравнению текстовых файлов.
Необходимо сравнить попарно текстовые файлы и удалить повторяющееся строки в 1-м из них.
Например:
1-й текст
BBC News
BBC Persian Television
BBC World News
BFM TV
Bloomberg
Business
Business 24

2-текст
Business 24
CNC World
CNews
CNews TV
CNN
CNN Airport
CNN Chile
CNN en Español
BBC Persian Television
CNN Indonesia
CNN International
BBC News
CNN Philippines
CNN Türk

Строки в обоих текстах идут в разной последовательности.
После преобразования 1-й тест должен выглядеть так;

BBC World News
BFM TV
Bloomberg
Business

Может кто встречал скрипт или утилиту для такой задачи, поделитесь, пожалуйста.
Многие утилиты для работы с текстом (или плагины) могут просто выделить или вывести в 3-й файл дубликаты строк. Можно конечно их потом удалить и вручную, но если строк 1-2 тысячи, то задача не из лёгких.
Поэтому и хочу найти подобный софт именно для удаления.
Можно было бы соединить оба файла и найти дубликаты строк, но это не подходит...

Заранее благодарен за подсказки и помощь.

YuS_2
26-05-2019, 13:59
кто встречал скрипт »
powershell
$file1 = 'test1.txt'
$file2 = 'test2.txt'
$file_out = 'out.txt'

diff (gc $file1 -enc utf8|sort) (gc $file2 -enc utf8|sort)|
? sideindicator -eq '<='|select -exp inputobject|
sc $file_out -enc utf8

В принципе, сортировка не особо нужна, её можно вообще выкинуть, т.к. сравнение будет построчным и порядок строк значения не имеет. Это чуть-чуть ускорит код в целом.

Uragan66
26-05-2019, 16:14
YuS_2, Спасибо большое! Скрипт подошел, на малом количестве строк отрабатывает быстро, так, что сортировка пока не мешает.
Пробовал подобный скрипт на AutoIt (нашел в сети), но он почему-то или вообще не отрабатывал, или на выходе получалась ерунда.
С Вашим вроде всё отлично. Ещё раз моя благодарность!




© OSzone.net 2001-2012