URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 9248
[ Назад ]

Исходное сообщение
"поменять регистр между двумя тегами с помощью sed или awk"

Отправлено plgrm44 , 05-Окт-11 12:15 
Привет.
Облазил весь инет и так не смог понять: возможно ли просто с помощью sed или аwk поменять регистр букв на нижний/верхний между двумя тегами в текстовом файле? Например в html-файле поменять все символы между тегами <body> и </body> на нижний регистр. Вся конструкция <body>заменяемый текст</body> может располагаться на нескольких строчках.

Содержание

Сообщения в этом обсуждении
"поменять регистр между двумя тегами с помощью sed или awk"
Отправлено erera22 , 05-Окт-11 14:41 
> Привет.
> Облазил весь инет и так не смог понять: возможно ли просто с
> помощью sed или аwk поменять регистр букв на нижний/верхний между двумя
> тегами в текстовом файле? Например в html-файле поменять все символы между
> тегами <body> и </body> на нижний регистр. Вся конструкция <body>заменяемый текст</body>
> может располагаться на нескольких строчках.

sed -n '/<body>/,/<\/body>/p' source.htm | tr [:upper:][:lower:] [:lower:][:lower:] > result.htm


"поменять регистр между двумя тегами с помощью sed или awk"
Отправлено plgrm44 , 05-Окт-11 15:11 
> sed -n '/<body>/,/<\/body>/p' source.htm | tr [:upper:][:lower:] [:lower:][:lower:]
> > result.htm

На выходе нужен такой же файл с замененным регистром символов, находящихся между заданными тегами.


"поменять регистр между двумя тегами с помощью sed или awk"
Отправлено PavelR , 05-Окт-11 17:22 
>> Привет.
>> Облазил весь инет и так не смог понять: возможно ли просто с
>> помощью 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  

Можно.


"поменять регистр между двумя тегами с помощью sed или awk"
Отправлено plgrm44 , 05-Окт-11 22:39 
> http://drbatty.ru/sed/ch06.html
> Можно.

окончательная ссылка не работает, но ресурс полезный - изучу и потом отпишусь



"поменять регистр между двумя тегами с помощью sed или awk"
Отправлено plgrm44 , 06-Окт-11 02:41 
>>> Привет.
>>> Облазил весь инет и так не смог понять: возможно ли просто с
>>> помощью 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



"поменять регистр между двумя тегами с помощью sed или awk"
Отправлено plgrm44 , 06-Окт-11 07:12 
@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"


"поменять регистр между двумя тегами с помощью sed или awk"
Отправлено Dexel , 07-Июл-14 05:33 
>[оверквотинг удален]
> 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 так проектировали. Принцип "Зачем просто, если можно сложно".