Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - SED 4,9 Windows

Ответить
Настройки темы
Любой язык - SED 4,9 Windows

Аватара для DenchikK

Старожил


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

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


Не могу понять, как с помощью sed под windows задавать точное соответствие. В манах вижу варианты с \b и \< , а так же с одинарными кавычками. Первые 2 варианта срабатывают и с Первый канал HD и Первый канал (+2), варианты с одинарными кавычками выдают ошибки. Так как вхождение Первый канал находится в середине строки, я не могу использовать значения начала и конца строки.
sed -i "s/\bПервый канал\b/Первый канал temp/g" test.m3u
sed -i "s/\<Первый канал\>/Первый канал temp/g" test.m3u

Отправлено: 23:45, 02-10-2023

 

Старожил


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

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


может поставьте нормальный
Код: Выделить весь код
C:\Program Files\Git\usr\bin\sed.exe
и для того чтобы не обрабатывались оба
Первый канал HD и Первый канал (+2)


-
Код: Выделить весь код
\bПервый канал\b
недостаточно

надо что то полсе проверять

Отправлено: 04:10, 03-10-2023 | #2



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

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


Аватара для DenchikK

Старожил


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

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


Цитата Serguei Kouzmine:
может поставьте нормальный »
Ещё более нормальный, чем этот?
Цитата Serguei Kouzmine:
надо что то полсе проверять »
Ну таки что проверять?

Отправлено: 12:14, 03-10-2023 | #3


Ветеран


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

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


Цитата DenchikK:
Ну таки что проверять? »
Действительно непонятно, что конкретно вы хотите? Покажите кусок test.m3u?

Код: Выделить весь код
C:\> echo "ааааа Первый канал HD ббббб Первый канал (+2)" | sed -r "s/(Первый\sканал\s)(HD)/\1temp \2/g"
"ааааа Первый канал temp HD ббббб Первый канал (+2)"
Код: Выделить весь код
C:\> echo "ааааа Первый канал HD ббббб Первый канал (+2)" | sed -r "s/(Первый\sканал\s)(\(\+2\))/\1temp \2/g"
"ааааа Первый канал HD ббббб Первый канал temp (+2)"
PowerShell нельзя? Там это проще.

Последний раз редактировалось Foreigner, 03-10-2023 в 13:28.

Это сообщение посчитали полезным следующие участники:

Отправлено: 13:22, 03-10-2023 | #4


Аватара для DenchikK

Старожил


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

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


Цитата Foreigner:
Действительно непонятно »
Хочу с помощью sed, а не powershell или чего бы то нибыло ещё, находить точное вхождение названия канала и делать потом разные действия, неважно какие.
В плейлисте могут быть различные варианты - как я для примера написал HD или +2 - но вариантов может быть ещё множество, каждый из которых перечислять тож не хочется.
Идея находить точное соответствие. В своих поисках неоднократно встречал советы для точного соответствия использовать \b или \<, но у меня это не срабатывает - всё равно действия, которое хочется применить к конкретному названию каналу, применяются и к другим каналам, к которым применять изменения не планировалось.
Пока, чтоб находить точное соответствие использую знак конца строки, например Первый канал$ но в некоторых промежуточных обработках скриптом плейлиста имя канала становится в середине строки и тогда этот способ уже не прокатывает.

Отправлено: 13:49, 03-10-2023 | #5


Ветеран


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

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


Цитата DenchikK:
находить точное вхождение названия канала »
Без конкретных примеров даже не знаю, что посоветовать.
Это сообщение посчитали полезным следующие участники:

Отправлено: 14:14, 03-10-2023 | #6


Старожил


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

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


нужно больше информации
вопрос слишком общий
Это сообщение посчитали полезным следующие участники:

Отправлено: 15:36, 03-10-2023 | #7


Старожил


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

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


Цитата DenchikK:
а не powershell или чего бы то нибыло ещё »
Дело конечно Ваше, но зря от PS отказываетесь... Уже не первый год любые задачи с плейлистами, да и не только, решаю с помощью powershell.
Но действительно, как ребята сказали выше, нужны конкретные примеры и больше информации.
Это сообщение посчитали полезным следующие участники:

Отправлено: 22:46, 03-10-2023 | #8



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - SED 4,9 Windows

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] sed замена текста shmel_sv@vk Скриптовые языки администрирования Windows 8 24-04-2019 19:06
Любой язык - [решено] bash, команда sed garanov Скриптовые языки администрирования Windows 1 28-05-2015 16:39
Разбить sed'ом строку Доктор Ливси Программирование в *nix 2 25-03-2015 19:01
Прочее - SED + XML cantido Общий по Linux 1 30-05-2014 11:04
Debian/Ubuntu - [решено] sed 's///' - не получается заменить строку файла VladDV Общий по Linux 2 09-12-2011 02:09




 
Переход