Имя пользователя:
Пароль:
 | Правила  

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

Ответить
Настройки темы
CMD/BAT - Удаление дубликатов.

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


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

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


Наверно было уже что то похожее, но никак не могу найти.
Имеется тхт файл 5-40к строк, в строках зачастую присутствуют всякого рода спец символы.
Нужно в этом файле удалить дубликаты строк.
Спасибо!

Отправлено: 21:12, 15-09-2014

 

Старожил


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

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


uniq.exe http://gnuwin32.sourceforge.net/packages/coreutils.htm
Это сообщение посчитали полезным следующие участники:

Отправлено: 21:34, 15-09-2014 | #2



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

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


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


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

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


Что то не могу понять. Средством CMD/BAT можно это сделать?

Отправлено: 21:50, 15-09-2014 | #3


Ветеран


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

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


evgon, это и есть «посредством cmd/bat». В случае «посредством WSH» или «посредством PoSH» можно обойтись без сторонних утилит.
Это сообщение посчитали полезным следующие участники:

Отправлено: 07:41, 16-09-2014 | #4


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


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

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


А тыкните пальцем пожалуйста что-то я не разобрался по ссылке.

Отправлено: 11:23, 16-09-2014 | #5


Ветеран


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

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


Загружаете Setup. Устанавливаете. Используете:
читать дальше »
Цитата "C:\Program Files\GnuWin32\bin\uniq.exe" --help:
Код: Выделить весь код
Использование: uniq.exe [КЛЮЧ]... [ВХОД [ВЫХОД]]
Удаляет все кроме одной повторяющиеся строки ВХОДА (или стандартного ввода) и
печатает на ВЫХОД (или на стандартный вывод).

Аргументы, обязательные для длинных ключей, обязательны и для коротких.
  -c, --count           выводить число повторов в начале каждой строки
  -d, --repeated        выводить только повторяющиеся строки
  -D, --all-repeated[=delimit-method] напечатать все повторяющиеся строки
                        delimit-method={none(по умолчанию),prepend,separate)}
                        Разделение делается по пустым строкам.
  -f, --skip-fields=Н   не сравнивать первые Н полей
  -i, --ignore-case     игнорировать при сравнении регистр
  -s, --skip-chars=Н    не сравнивать первые Н знаков
  -u, --unique          выводить только неповторяющиеся строки
  -w, --check-chars=Н   сравнивать первые Н знаков строк
      --help     показать эту справку и выйти
      --version  показать информацию о версии и выйти


Полем считается последовательность пробельных знаков, за которой
следуют непробельные знаки.  Сначала пропускаются поля, потом знаки.

Об ошибках сообщайте по адресу <bug-coreutils@gnu.org>.
Это сообщение посчитали полезным следующие участники:

Отправлено: 12:13, 16-09-2014 | #6


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


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

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


Скачал установил, но никик не могу понять как его запустить чтоб удалить дубли например в C:\1.txt ?

Отправлено: 17:15, 17-09-2014 | #7


Ветеран


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

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


Например, так:
Код: Выделить весь код
"C:\Program Files\GnuWin32\bin\uniq.exe" "C:\1.txt"
Если файл ещё не отсортирован — то так:
Код: Выделить весь код
"C:\Program Files\GnuWin32\bin\sort.exe" "C:\1.txt" | "C:\Program Files\GnuWin32\bin\uniq.exe"

Отправлено: 19:52, 17-09-2014 | #8


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


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

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


Пробую вот так:
"C:\Program Files (x86)\GnuWin32\bin\uniq.exe" "C:\1.txt"
И вот так:
"C:\Program Files (x86)\GnuWin32\bin\sort.exe" "C:\1.txt" | "C:\Program Files (x86)\GnuWin32\bin\uniq.exe"

На долю секунды появляется окошко, но файл 1.txt остается неизменным.

Отправлено: 13:03, 18-09-2014 | #9


Ветеран


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

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


Цитата evgon:
На долю секунды появляется окошко, но файл 1.txt остается неизменным. »
Естественно. Вывод ведь идёт на консоль. Если бы Вы осуществляли запуск из-под командного процессора или из-под Far Manager'а (а не из Проводника или Total Commander'а и иже с ним) — Вы бы увидели этот результат.

Для вывода результата в тот же файл сделайте вывод во временный файл, а затем скопируйте его поверх исходного, например:
читать дальше »
Код: Выделить весь код
@echo off
setlocal enableextensions enabledelayedexpansion

set sSourceFile="c:\1.txt"

call :GetTemporaryName

>"%TemporaryName%" ("C:\Program Files\GnuWin32\bin\sort.exe" "%sSourceFile%" | "C:\Program Files\GnuWin32\bin\uniq.exe")
copy /y "%TemporaryName%" "%sSourceFile%"
del /f /q "%TemporaryName%"

endlocal
exit /b 0
rem ==========================================================================

rem ==========================================================================
rem Функция GetTemporaryName()
rem
rem Серый форум / CMD/BAT: генерация пути для временного файла или папки
rem (http://forum.script-coding.com/viewtopic.php?id=6259)
rem ==========================================================================
:GetTemporaryName
	setlocal enableextensions enabledelayedexpansion

:NextName
	set sTempName=%temp%\temp%random%.tmp

	if exist "%sTempName%" goto :NextName

	set sProcName=%~0

	endlocal & set %sProcName:~4%=%sTempName%
	exit /b 0
rem ==========================================================================
Это сообщение посчитали полезным следующие участники:

Отправлено: 18:05, 18-09-2014 | #10



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Система - Программы для поиска и удаления дубликатов файлов Alex Cop Программное обеспечение Windows 61 07-01-2018 12:00
.NET - Удаления дубликатов C# KarpovStas Программирование и базы данных 1 02-12-2013 16:36
Любой язык - [решено] Поиск дубликатов Baranius Скриптовые языки администрирования Windows 14 07-06-2012 12:22
CMD/BAT - Удаление дубликатов при копировании Seryoga204 Скриптовые языки администрирования Windows 1 22-08-2010 17:01
Разное - CloneSpy - автоматическое/полуавтоматическое удаление дубликатов файлов ShaRP Программное обеспечение Windows 0 25-05-2008 19:54




 
Переход