Перейти к содержимому













Фотография
Нужна помощь

Удалить дублирующие строки в нескольких txt



  • Авторизуйтесь для ответа в теме
Сообщений в теме: 10

#1 vorn

vorn
  • Platinum
  • Сообщений: 1 528
  • Регистрация: 15.02.2014
  • Заработано: 24 руб.
Репутация: 353

Награды: 26

  
  
  
  
  
  
  
  

Отправлено 25 Январь 2019 - 21:59

Ребят, чем бы удалить дублирующие строки в нескольких txt?

Можно конечно склеить все файлы, потом удалить дубли, это просто. 

А если не склеивать, как бы удалить дубли? Подскажите, пожалуйста.


  • 0

#2 lifepusher

lifepusher
  • Сливапер LVL 7
  • Сообщений: 5 501
  • Регистрация: 19.03.2015
  • Заработано: 7 838 руб.
Репутация: 10 170

Награды: 47

  
  
  
  
  
  
  
  

Отправлено 25 Январь 2019 - 22:36

Привет.

Есть приблуда, работающая в среде Total Commander-а. Называется TCIMG. Это собранный в одну программу набор скриптов на все случаи жизни. Одно из применений - работа с текстовыми файлами. Почитай хелп. Он очень подробный. В упомянутом случае вроде подходят команды:

 

textx=%L||formt<1> ;; удаление дубликатов в содержимом выделенных текстовых файлов

textx=%L||formt<9> ;; в содержимом выделенных текстовых файлов удалить дублирующиеся строки (остаются строки, которые не повторялись)

 

(Раздел справки: Все команды -> Текст - > Преобразование текстовых файлов)

 

Правда не скажу сейчас - какая из них убирает дублирующиеся строки полностью, а какая - оставляет одну из них и что именно тебе нужно. Поэкспериментируй... Но не забывая о резервных копиях ;)


Сообщение отредактировал lifepusher: 25 Январь 2019 - 22:37

  • 2

#3 lifepusher

lifepusher
  • Сливапер LVL 7
  • Сообщений: 5 501
  • Регистрация: 19.03.2015
  • Заработано: 7 838 руб.
Репутация: 10 170

Награды: 47

  
  
  
  
  
  
  
  

Отправлено 25 Январь 2019 - 22:54

Да, чуть не забыл. Если нужен отдельный инструмент для работы с текстом в ом же проекте есть расширенная версия AkelPad-а - AkelPad Image Full. В нём собраны все скрипты для работы с текстом. То, что нужно: Меню -> Сортировка -> Дубликаты строк + С учётом регистра символов ->


  • 0

#4 кобряныч

кобряныч
  • Platinum
  • Сообщений: 283
  • Регистрация: 21.05.2014
  • Заработано: 18 руб.
Репутация: 137

Награды: 21

  
  
  
  
  
  
  
  

Отправлено 26 Январь 2019 - 00:19

Ну и если не помогло можно попробовать моим кривоватым кодом PHP.

<?php 
header('Content-Type: text/plain; charset=utf-8');
mb_internal_encoding("UTF-8");
$file = 'counter.txt';
$file = fopen($file, "r");
$arr = [];
$arr = file('counter.txt');
$arr = array_map('trim', $arr);
$arr_str = array_unique($arr, SORT_LOCALE_STRING);
$arr_str = implode("\r\n", $arr_str);
file_put_contents('result.txt', $arr_str);


Сообщение отредактировал кобряныч: 26 Январь 2019 - 00:19

  • 1

#5 Andrey37

Andrey37
  • Platinum
  • Сообщений: 522
  • Регистрация: 17.06.2014
  • Заработано: 27 руб.
Репутация: 219

Награды: 22

  
  
  
  
  
  
  
  

Отправлено 26 Январь 2019 - 02:30

так в экселе приблуды есть для удаления дублей


  • 0

#6 GreyOFF

GreyOFF
  • Модератор
  • Сообщений: 1 137
  • Регистрация: 13.05.2014
  • Заработано: 428 руб.
Репутация: 789
  • Навыки обучения:

    Мой номер: 79196394717

Награды: 26

  
  
  
  
  
  
  
  

Отправлено 26 Январь 2019 - 12:17

vorn, возьми и просто скачай маленькую такую прогу, которой я пользовался раньше, помогала работать с базами, можно рандомизировать, удалять дубли, разбивать и прочее. Встраивается в контекстное меню, то есть при наведение курсора на файл, щелкаешь правой клавишей мыши и ищешь программу которая встроилась и выбираешь уже нужную функцию:

 

Скачать: https://yadi.sk/d/r7EHWJtGjo5M0w

 

Вирус Тотал: https://www.virustot...2b855/detection

 

В общем качай и не парься)  :rolleyes:


  • 0

#7 vorn

vorn
  • Platinum
  • Сообщений: 1 528
  • Регистрация: 15.02.2014
  • Заработано: 24 руб.
Репутация: 353

Награды: 26

  
  
  
  
  
  
  
  

Отправлено 26 Январь 2019 - 14:35

lifepusher, Спасибо. Не смог разобраться. Скачал даже тотал коммандер с их сайта со встроенным  TCIMG, но тоже хрен что поймёшь.

То что подробная справка у  TCIMG, списки комманд и т.д., а куда вводить эти команды не понятно.

 

По поводу AkelPad. Так понял он работает только с одним файлом. Не хочет со всеми файлами работать.

 

кобряныч, Спасибо. Нужно чтобы приблуда работала со всеми файлами, учитывая содержимое всех файлов сразу, т.е. не просто что бы удалила дубли из каждого файла, а что бы было так:

пример

есть к примеру 3 файла:

1.txt

1

2

3

4

5

 

2.txt

3

4

5

6

7

 

3.txt

1

3

7

8

9

0

 

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

1.txt

1

2

3

4

5

 

2.txt

6

7

 

3.txt

8

9

0

 

GreyOFF, Спасибо. Не хочет работать со всеми файлами с учетом содержимого каждого. Выше в эом же сообщении под спойлером пример написал, как нужно.


  • 0

#8 кобряныч

кобряныч
  • Platinum
  • Сообщений: 283
  • Регистрация: 21.05.2014
  • Заработано: 18 руб.
Репутация: 137

Награды: 21

  
  
  
  
  
  
  
  

Отправлено 26 Январь 2019 - 15:17

vorn,

со всех файлов собрал, но только в один сложил,

<?php

$dir = scandir("source");
$file = [];
for ($i = 2; $i < count($dir); $i++) {
    $_arr = fopen("source/" .$dir[$i], "r");
    array_push($file, file("source/" .$dir[$i]));
}
$arr = [];
$arr = call_user_func_array('array_merge', $file);
$arr = array_map('trim', $arr);
$arr_str = array_unique($arr, SORT_LOCALE_STRING);
$arr_str = implode("\r\n", $arr_str);
file_put_contents('result/result.txt', $arr_str);

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


Сообщение отредактировал кобряныч: 26 Январь 2019 - 23:33

  • 0

#9 vorn

vorn
  • Platinum
  • Сообщений: 1 528
  • Регистрация: 15.02.2014
  • Заработано: 24 руб.
Репутация: 353

Награды: 26

  
  
  
  
  
  
  
  

Отправлено 29 Январь 2019 - 22:12

кобряныч, спасибо за написание кода  :)

Поскольку решения поставленной задачи не нашел, сделал проще - скачал триал версию "Penguin Premium Edition", на 14 дней даётся (задача разовая, триала хватило). Удалил им все дубли и разбил как мне нужно. Удалять дубли так как написано в первом посте к сожалению не умеет. В целом прога отличая, тянет тяжелые файлы под 1ГБ. Где бы ломаную эту прогу найти....

GreyOFF,  попробовал, хорошая прога, функционал тот же что и у проги выше, но с файлом в 300мб вылетела ошибка. Т.е. только для лёгких файлов.


  • 0

#10 themelock

themelock
  • Premium
  • Сообщений: 75
  • Регистрация: 07.12.2014
  • Заработано: 1 руб.
Репутация: 55

Награды: 15

  
  
  
  
  
  
  
  

Отправлено 30 Январь 2019 - 05:45

У Tотал Kомандера по умолчанию есть поиск и удаления одинакового контента и файлов.

Поиск файлов -> Переход во вкладку Дополнительно -> Снизу увидишь поиск Поиск Дубликатов (по имени или по седержимому нужно выбрать) ->
Да че я объясняю, вот ссылка https://wincmd.ru/dublicate_search.php


  • 0

#11 lifepusher

lifepusher
  • Сливапер LVL 7
  • Сообщений: 5 501
  • Регистрация: 19.03.2015
  • Заработано: 7 838 руб.
Репутация: 10 170

Награды: 47

  
  
  
  
  
  
  
  

Отправлено 30 Январь 2019 - 07:14

themelock, при чём тут поиск одинаковых файлов? Читайте внимательно поставленную задачу. Она принципиально иная: найти и удалить дубликаты в содержимом файлов.


  • 0



Похожие темы Collapse

Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных

×

Зарегистрируйся моментально!