|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - удаление строк |
|
CMD/BAT - удаление строк
|
Новый участник Сообщения: 1 |
Здравствуйте, помогите, пожалуйста, написать батник для удаления строк
Имеется текст в таком формате к примеру (вместо слов также могут быть цифры) mamy;token;8d mamy;ret;10e mamy;hyu;11d mamy;reyy;18d mamy;lop[;98 mamy;nhjjj;17g mamy;4trgg;6999r mamy;fjk;1444f mamy;ewrr;148gf mamy;kjkgj;544545f mamy;dgfgrrt;544545f mamy;kjkvbvbngj;4656f toka;loka;18d85f lpod;fhfgnhjj;rnjn556 more;herpiot;jnr66 velret;ghrt6y;fnh555 Необходимо удалить строки те, у которых попадаются в тексте больше, чем 10 строк с повторяющимся словом/цифрой. Напимер строка со словом mamy имеет 11 строк - весь список со словом mamy надо удалить. Если строк меньше или равно 10 с повторяющимся словом или цифрой - оставить и не удалять спасибо за помощь |
|
Отправлено: 02:06, 07-08-2014 |
Ветеран Сообщения: 874
|
Профиль | Отправить PM | Цитировать @echo off setlocal enabledelayedexpansion ( for /f "usebackq tokens=1-3 delims=;" %%i in ("example.txt") do ( for %%l in ("%%i" "%%j" "%%k") do ( echo.%%~l ) ) )>1.tmp ( for /f "delims=" %%i in ('sort 1.tmp') do ( if not defined v ( set v=%%i set c=1 ) else ( if "%%i"=="!v!" ( set /a c+=1 if !c! gtr 10 ( echo.%%i ) ) else ( set v=%%i set c=1 ) ) ) )>2.tmp findstr /lvg:2.tmp "example.txt">"new.txt" del 1.tmp 2.tmp endlocal exit /b |
Отправлено: 22:16, 07-08-2014 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 874
|
Профиль | Отправить PM | Цитировать drone4888, если Вас интересует использование только первой части "триады", то это ещё проще и в некоторых случаях точнее:
@echo off setlocal enabledelayedexpansion ( for /f "usebackq delims=;" %%i in ("example.txt") do ( echo.%%i; ) )>1.tmp ( for /f "delims=" %%i in ('sort 1.tmp') do ( if not defined v ( set v=%%i set c=1 ) else ( if "%%i"=="!v!" ( set /a c+=1 if !c! gtr 10 ( echo.%%i ) ) else ( set v=%%i set c=1 ) ) ) )>2.tmp findstr /lvg:2.tmp "example.txt">"new.txt" del 1.tmp 2.tmp endlocal exit /b |
Отправлено: 19:01, 09-08-2014 | #3 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - [решено] BAT - Удаление строк(-и) | Ragnazar | Скриптовые языки администрирования Windows | 1 | 21-02-2013 14:37 | |
CMD/BAT - Поиск слова в тексте, удаление строки, удаление 8 строк выше и 3 строк ниже | Alk-13 | Скриптовые языки администрирования Windows | 0 | 10-02-2012 18:06 | |
VBS/WSH/JS - Удаление строк в REG файле | gen0m.rsw | Скриптовые языки администрирования Windows | 9 | 28-09-2011 18:03 | |
CMD/BAT - Удаление строк | gen0m.rsw | Скриптовые языки администрирования Windows | 2 | 08-10-2010 12:12 | |
Удаление строк из регфайла... | semiono | AutoIt | 4 | 21-01-2010 11:06 |
|