Показать полную графическую версию : SED 4,9 Windows
DenchikK
02-10-2023, 23:45
Не могу понять, как с помощью sed под windows задавать точное соответствие. В манах вижу варианты с \b и \< , а так же с одинарными кавычками. Первые 2 варианта срабатывают и с Первый канал HD и Первый канал (+2), варианты с одинарными кавычками выдают ошибки. Так как вхождение Первый канал находится в середине строки, я не могу использовать значения начала и конца строки.
sed -i "s/\bПервый канал\b/Первый канал temp/g" test.m3u
sed -i "s/\<Первый канал\>/Первый канал temp/g" test.m3u
Serguei Kouzmine
03-10-2023, 04:10
может поставьте нормальный
C:\Program Files\Git\usr\bin\sed.exe
и для того чтобы не обрабатывались оба
Первый канал HD и Первый канал (+2)
-
\bПервый канал\b
недостаточно
надо что то полсе проверять
DenchikK
03-10-2023, 12:14
может поставьте нормальный »
Ещё более нормальный, чем этот?
https://i.ibb.co/FgZQq1q/2023-10-03-121525.png (https://ibb.co/FgZQq1q)надо что то полсе проверять »
Ну таки что проверять?
Foreigner
03-10-2023, 13:22
Ну таки что проверять? »
Действительно непонятно, что конкретно вы хотите? Покажите кусок 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 нельзя? Там это проще.
DenchikK
03-10-2023, 13:49
Действительно непонятно »
Хочу с помощью sed, а не powershell или чего бы то нибыло ещё, находить точное вхождение названия канала и делать потом разные действия, неважно какие.
В плейлисте могут быть различные варианты - как я для примера написал HD или +2 - но вариантов может быть ещё множество, каждый из которых перечислять тож не хочется.
Идея находить точное соответствие. В своих поисках неоднократно встречал советы для точного соответствия использовать \b или \<, но у меня это не срабатывает - всё равно действия, которое хочется применить к конкретному названию каналу, применяются и к другим каналам, к которым применять изменения не планировалось.
Пока, чтоб находить точное соответствие использую знак конца строки, например Первый канал$ но в некоторых промежуточных обработках скриптом плейлиста имя канала становится в середине строки и тогда этот способ уже не прокатывает.
Foreigner
03-10-2023, 14:14
находить точное вхождение названия канала »
Без конкретных примеров даже не знаю, что посоветовать.
Serguei Kouzmine
03-10-2023, 15:36
нужно больше информации
вопрос слишком общий
Uragan66
03-10-2023, 22:46
а не powershell или чего бы то нибыло ещё »
Дело конечно Ваше, но зря от PS отказываетесь... Уже не первый год любые задачи с плейлистами, да и не только, решаю с помощью powershell.
Но действительно, как ребята сказали выше, нужны конкретные примеры и больше информации.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.