Vernyj
@Vernyj

Чем удалить дубликаты строки в большом списке файлов?

Доброй ночи. Имеется 4700 файлов без указания формата и размером в 2КБ. Облазил весь интернет, но так и не нашел программу или же простой скрипт в которой\м можно указать номер строки и пробить по ней файлы на дубликат, с последующим удалением одной из копии файла-дубликата.
Заранее, огромнейшее Вам спасибо!
  • Вопрос задан
  • 342 просмотра
Решения вопроса 1
@abcd0x00
Надо написать функцию, в которую ты подаёшь пути к двум файлам и номер строки и она сравнивает эти файлы по этой строке и возвращает true/false (равны по строке, не равны по строке). А потом, когда у тебя есть эта функция, ты просто берёшь каждую пару файлов и подаёшь их в эту функцию. Если она вернула true, удаляешь второй файл и подставляешь следующий для проверки.

Вызовы будут так выглядеть:

Для файлов file1.txt file2.txt file3.txt file4.txt

func(file1.txt, file2.txt, 3)
func(file1.txt, file3.txt, 3)
func(file1.txt, file4.txt, 3)
func(file2.txt, file3.txt, 3)
func(file2.txt, file4.txt, 3)
func(file3.txt, file4.txt, 3)

Там у тебя получится цикл в цикле. Внешний цикл перебирает левые файлы. Внутренний цикл перебирает правые файлы. И вот правые файлы удаляются, если в них дубликат.

Конечно, там получится заморочка: если файл уже удалился как правый, то его не нужно проверять уже как левый файл с другими правыми файлами. Поэтому, чтобы не путаться, ты можешь не удалять правые файлы, а просто записывать пути к ним куда-нибудь. А уже потом, после всего, ты можешь эти пути взять и по ним удалить файлы.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
lxsmkv
@lxsmkv
Test automation engineer
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы