|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Bat который удалит определенные строки с тхт |
|
CMD/BAT - Bat который удалит определенные строки с тхт
|
Новый участник Сообщения: 2 |
Профиль | Отправить PM | Цитировать Нужен батник, который удалит каждую третью повторяющуюся строчку.
Есть тхт пример: ( текст рандомно разбросанн ) 1 1 1 2 2 2 3 3 3 Задача, удалить строки которые в данным момент выделены жирный шрифтом, такой тхт может состоять из 20к строк к примеру. Можете полный код скинуть, если возможно такое. |
|
Отправлено: 12:36, 21-08-2019 |
Ветеран Сообщения: 992
|
Профиль | Сайт | Отправить PM | Цитировать если
Цитата traceDSG:
как поступать в таком случае? И, что тоже важно, как поступать если повторяющихся строк больше трех? А еще скоро будут заданы вопросы о кодировке файла, наличии/отсутствии в строках спецсимволов и кириллицы, ну и скорей всего о количестве файлов которые нужно будет обработать. Это пока не заглянет в тему Iska, он вообще затребует пример файла (ну или хотя бы кусок). |
|
Отправлено: 14:16, 21-08-2019 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 2
|
Профиль | Отправить PM | Цитировать Вот пример текста.
Видео:141214 Картинка:1342 Надпись:543 Помойка:654645 Надпись:42352 Видео:6578 Картинка:6446 Надпись:64564 Видео:42342 Картинка:42354 Надпись:42352 Видео:12422 Надпись:42352 ( могут быть спец символы,кириллица ) Кодировка UTF-8 она у меня стоит Слово Видео встречается 4 раза, следовательно мы должны оставить только 3, последнее найденное должно удалится. Слово Картинка встречается 3 раза, их мы все оставляем - на нужно чтоб их было не более 3х Слово Помойка встречается 1 раз, все нормально оставляем. Слово Надпись встречается 5 раз, две последние мы должны удалить, чтоб их осталось 3. После : идет текст, он рандомный - Нужен батник, который запустил - и в окно командной строки закинул тхт который я хочу обработать. |
Отправлено: 14:35, 21-08-2019 | #3 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата Elven:
Цитата traceDSG:
Цитата traceDSG:
Цитата traceDSG:
В общем, давайте реальный файл в архиве, от этого и будем танцевать. P.S. Про «батник» лучше сразу забудьте. |
||||
Отправлено: 17:16, 21-08-2019 | #4 |
Deadooshka Сообщения: 2482
|
Профиль | Отправить PM | Цитировать Идея с массивом счётчиков. Создаст файл с _no_repeating без строк с повторяющимися больше 3 раз ключами (до двоеточия).
Скрытый текст
if (!WSH.Arguments.Unnamed.length) WSH.Quit(1); var file = WSH.Arguments.Unnamed.Item(0); var max = 3; var fso = new ActiveXObject('Scripting.FileSystemObject'); if (!fso.FileExists(file)) WSH.Quit(2); var fr = fso.OpenTextFile(file, 1, false, -2); if (!fr) WSH.Quit(3); var fw = fso.OpenTextFile(file.replace(/(\.\w{1,6})?$/, '_no_repeating$1'), 2, true, -2); var counters = {}, key, line; while (!fr.AtEndOfStream) { line = fr.ReadLine(); if (key = /^[^:]+/.exec(line)) { key = key[0]; counters[key] ? counters[key]++ : counters[key] = 1; if (counters[key] > max) { WSH.Echo("'" + key + "' has " + counters[key] + " matches, skipping"); continue; } } fw.Writeline(line); } fw.Close(); fr.Close(); |
|
Отправлено: 20:46, 21-08-2019 | #5 |
Забанен Сообщения: 793
|
sed'ом все решается гораздо проще.
|
Отправлено: 15:15, 23-08-2019 | #6 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Любой язык - [решено] Удалить строки из тхт файлов, номера которых указаны в другом тхт файле | Alexander_88 | Скриптовые языки администрирования Windows | 4 | 14-02-2016 11:21 | |
Любой язык - [решено] Извлечь определенные строки по счету из одного тхт файла в другой | Alexander_88 | Скриптовые языки администрирования Windows | 11 | 13-06-2015 12:48 | |
CMD/BAT - bat который будет дописывать строки в конец файла | infoman1@vk | Скриптовые языки администрирования Windows | 9 | 11-07-2014 22:21 | |
CMD/BAT - поиск новой строки в тхт файле | Xeruvim4ik | Скриптовые языки администрирования Windows | 8 | 17-02-2014 00:51 | |
CMD/BAT - [решено] Батник который следит за текстовым файлом тхт | angel_lyucifer | Скриптовые языки администрирования Windows | 3 | 31-01-2013 03:09 |
|