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

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Разное - Удалить дубликаты в файле csv

Ответить
Настройки темы
Разное - Удалить дубликаты в файле csv

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


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

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


Здравствуйте!
В программе Notepad++
Есть файл csv, он хоть и длинный, но я приведу коротким пример.
Нужно удалить дубликаты, но оставить по два или три дубля. То есть не все дубликаты, всё-то легко, а оставить несколько (сколько мне нужно)
Вот в таком файле

"doors-k.kam@yandex.ru";"Дизайн интерьеров";
"info@impressdesign.ru";"Дизайн интерьеров";
"your.design2016@yandex.ru";"Дизайн интерьеров";
"info@zs-ural.ru";"Дизайн интерьеров";
"info@euroluster.ru";"Дизайн интерьеров";
"3834114@mail.ru";"Дизайн интерьеров";
"dioscolor@yandex.ru";"Промышленный дизайн";
"info@dredz.ru";"Промышленный дизайн";
"asya.kuzina@gmail.com";"Промышленный дизайн";
"bocharovvictor@yandex.ru, bocharovaelena82@yandex.ru";"Промышленный дизайн";
"veragueppa@mail.ru";"Промышленный дизайн";
"laduga@laduga.com, caddex@caddex.eu";"Промышленный дизайн";
"shkalikov.dv@gmail.com";"Промышленный дизайн";
"service@soniko-n.ru";"Промышленный дизайн";

Тут видно, что повторяются слова Дизайн интерьеров и Промышленный дизайн.
Как мне оставить по два дубликата?

Отправлено: 02:02, 28-04-2023

 

Deadooshka


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

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


Можно использовать hashtable для счётчиков. На powershell с импортом-экспортом наверное проще будет.
Код: Выделить весь код
$ht = @{}
$delim = ';'
$max = 2
$csv = 'file.csv'
Import-Csv -Path $csv -Delimiter $delim -Header 'mail', 'item' |
  Where-Object { ++$ht[$_.item] -le $max} |
  Export-Csv -Path ($csv -replace '(\.\w+)$', '_removed$1') -Encoding 'Default' -Delimiter $delim -NoTypeInformation
кладёт изменённый файл в той же папке.

Отправлено: 07:32, 28-04-2023 | #2



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

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


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


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

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


Такие задачи просто через регулярные выражения не решаются?

Отправлено: 08:47, 28-04-2023 | #3


Deadooshka


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

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


Цитата tasix:
через регулярные выражения »
в Notepad++ ? У csv свой формат, который сложно учитывать в регулярном выражении. В любом случае нужно как-то считать количество совпадений по строке.

Отправлено: 09:14, 28-04-2023 | #4


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


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

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


Спасибо за ответы

Отправлено: 11:53, 28-04-2023 | #5



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Разное - Удалить дубликаты в файле csv

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
PowerShell - [решено] Поиск в csv файле ejik_off Скриптовые языки администрирования Windows 27 16-04-2021 16:28
2010 - Outlook удалить дубликаты сообщений Beliy.IV Microsoft Office (Word, Excel, Outlook и т.д.) 13 14-12-2018 12:34
Любой язык - [решено] Удалить дубликаты домена Alexander_88 Скриптовые языки администрирования Windows 4 19-07-2018 05:36
Разное - Как в файле Word найти дубликаты наборов символов (кусков текста) sl.oleg@fb Microsoft Office (Word, Excel, Outlook и т.д.) 22 02-12-2016 23:21
Прочие - Нужно удалить дубликаты контактов dionisys Программное обеспечение Windows 3 20-09-2012 14:03




 
Переход