Bat который удалит определенные строки с тхт
Нужен батник, который удалит каждую третью повторяющуюся строчку.
Есть тхт пример: ( текст рандомно разбросанн ) 1 1 1 2 2 2 3 3 3 Задача, удалить строки которые в данным момент выделены жирный шрифтом, такой тхт может состоять из 20к строк к примеру. Можете полный код скинуть, если возможно такое. |
если
Цитата:
Код:
1 И, что тоже важно, как поступать если повторяющихся строк больше трех? А еще скоро будут заданы вопросы о кодировке файла, наличии/отсутствии в строках спецсимволов и кириллицы, ну и скорей всего о количестве файлов которые нужно будет обработать. Это пока не заглянет в тему Iska, он вообще затребует пример файла (ну или хотя бы кусок). |
Вот пример текста.
Видео:141214 Картинка:1342 Надпись:543 Помойка:654645 Надпись:42352 Видео:6578 Картинка:6446 Надпись:64564 Видео:42342 Картинка:42354 Надпись:42352 Видео:12422 Надпись:42352 ( могут быть спец символы,кириллица ) Кодировка UTF-8 она у меня стоит Слово Видео встречается 4 раза, следовательно мы должны оставить только 3, последнее найденное должно удалится. Слово Картинка встречается 3 раза, их мы все оставляем - на нужно чтоб их было не более 3х Слово Помойка встречается 1 раз, все нормально оставляем. Слово Надпись встречается 5 раз, две последние мы должны удалить, чтоб их осталось 3. После : идет текст, он рандомный - Нужен батник, который запустил - и в окно командной строки закинул тхт который я хочу обработать. |
Цитата:
Цитата:
Цитата:
Цитата:
В общем, давайте реальный файл в архиве, от этого и будем танцевать. P.S. Про «батник» лучше сразу забудьте. |
Идея с массивом счётчиков. Создаст файл с _no_repeating без строк с повторяющимися больше 3 раз ключами (до двоеточия).
Скрытый текст
Код:
if (!WSH.Arguments.Unnamed.length) WSH.Quit(1); Код:
cscript //E:jscript "script.js" "файл со строками" |
sed'ом все решается гораздо проще.
|
Время: 16:24. |
Время: 16:24.
© OSzone.net 2001-