![]() |
Три строки
Здравствуйте!
Помогите пожалуйста с реализацией переподвыподверта :help: . Есть текстовый файл. В нем может попадаться три строки с одинаково начинающимся словом. Нужно сделать так, что бы в случае нахождения трёх идущих по очереди строк (с одинаковым первым словом), первая и третья удалялись, а оставалась только центральная. То есть удалялись первая и третья только в том случае, если они идут подряд одна за другой. Пример текста в файле: Действия баз данных Автоматизация действий и базы данных Программирование, базы данных, и много всего Программирование, базы данных и автоматизация действий Программирование, базы данных Скриптовые языки администрирования Windows Программирование, базы данных и автоматизация действий Языки администрирования Windows ТРИ строки начинающиеся со слова "Программирование" идут подряд. Если таковое в наличии в файле, то удаляем "Программирование, базы данных, и много всего" и "Программирование, базы данных". Оставляем только "Программирование, базы данных и автоматизация действий". Буду очень признателен, если это возможно сделать на CMD. :hi: |
Цитата:
|
Цитата:
На примере я более подробно всё показал. |
Цитата:
У меня либо одна, либо три. Если три, то первую и третью надо удалить. |
так что-ли? https://regex101.com/r/RcQmDw/1
|
Цитата:
|
Цитата:
а если файл большой, то регулярками и вовсе не стоит решать эту задачу |
ок, если под CMD никак, то ясно. Спасибо что откликнулись.
|
ок, если под CMD как. Если только в тексте нет всяких спецсимволов
Код:
@Echo Off |
Цитата:
Я не смог распарсить с непривычки. |
DJ Mogarych, а нужно ли здесь Select-String?
|
Iska, командлеты PowerShell - это и есть нормальное использование PowerShell, а не ваше любимое прямое обращение к методам и классам .NET
|
Busla, я имел в виду простой оператор -replace.
|
Iska, может, и не нужно.
Кстати, приведённый регекс не работает в таком примере: Цитата:
|
Цитата:
С m-флагом и якорем на порядок производительнее https://regex101.com/r/RcQmDw/3 |
Время: 23:23. |
Время: 23:23.
© OSzone.net 2001-