Привет.
Облазил весь инет и так не смог понять: возможно ли просто с помощью sed или аwk поменять регистр букв на нижний/верхний между двумя тегами в текстовом файле? Например в html-файле поменять все символы между тегами <body> и </body> на нижний регистр. Вся конструкция <body>заменяемый текст</body> может располагаться на нескольких строчках.
> Привет.
> Облазил весь инет и так не смог понять: возможно ли просто с
> помощью sed или аwk поменять регистр букв на нижний/верхний между двумя
> тегами в текстовом файле? Например в html-файле поменять все символы между
> тегами <body> и </body> на нижний регистр. Вся конструкция <body>заменяемый текст</body>
> может располагаться на нескольких строчках.sed -n '/<body>/,/<\/body>/p' source.htm | tr [:upper:][:lower:] [:lower:][:lower:] > result.htm
> sed -n '/<body>/,/<\/body>/p' source.htm | tr [:upper:][:lower:] [:lower:][:lower:]
> > result.htmНа выходе нужен такой же файл с замененным регистром символов, находящихся между заданными тегами.
>> Привет.
>> Облазил весь инет и так не смог понять: возможно ли просто с
>> помощью sed или аwk поменять регистр букв на нижний/верхний между двумя
>> тегами в текстовом файле? Например в html-файле поменять все символы между
>> тегами <body> и </body> на нижний регистр. Вся конструкция <body>заменяемый текст</body>
>> может располагаться на нескольких строчках.
> sed -n '/<body>/,/<\/body>/p' source.htm | tr [:upper:][:lower:] [:lower:][:lower:]
> > result.htmhttp://drbatty.ru/sed/ch06.html
Можно.
> http://drbatty.ru/sed/ch06.html
> Можно.окончательная ссылка не работает, но ресурс полезный - изучу и потом отпишусь
>>> Привет.
>>> Облазил весь инет и так не смог понять: возможно ли просто с
>>> помощью sed или аwk поменять регистр букв на нижний/верхний между двумя
>>> тегами в текстовом файле? Например в html-файле поменять все символы между
>>> тегами <body> и </body> на нижний регистр. Вся конструкция <body>заменяемый текст</body>
>>> может располагаться на нескольких строчках.
>> sed -n '/<body>/,/<\/body>/p' source.htm | tr [:upper:][:lower:] [:lower:][:lower:]
>> > result.htm
> http://drbatty.ru/sed/ch06.html
> Можно.Я так понял, что моего случая надо сначала весь файл превратить в одну строчку, а потом делать замены по заданному регулярному выражению на само себя с модификатором \L
например: sed "s:<tag>*.</tag>:\L&:" source.html
@echo off
set strSrc=a.html
set strOpenTag=^<body^>
set strCloseTag=^</body^>
set strEOL=^<@@@^>
sed ":a;N;$!ba;s/\n/%strEOL%/g" %strSrc% | ^
sed "s:%strOpenTag%:\r\n\0:g" | ^
sed "s:%strOpenTag%\(.*\)%strCloseTag%:%strOpenTag%\U\1\E%strCloseTag%:g" | ^
sed ":a;N;$!ba;s/\n//g" | ^
sed "s:%strEOL%:\r\n:g"
>[оверквотинг удален]
> set strSrc=a.html
> set strOpenTag=^<body^>
> set strCloseTag=^</body^>
> set strEOL=^<@@@^>
> sed ":a;N;$!ba;s/\n/%strEOL%/g" %strSrc% | ^
> sed "s:%strOpenTag%:\r\n\0:g" | ^
> sed "s:%strOpenTag%\(.*\)%strCloseTag%:%strOpenTag%\U\1\E%strCloseTag%:g" |
> ^
> sed ":a;N;$!ba;s/\n//g" | ^
> sed "s:%strEOL%:\r\n:g"Лучше на Ассемблере. Ещё круче в маш.кодах.
Маяк-233 так проектировали. Принцип "Зачем просто, если можно сложно".