The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"поменять регистр между двумя тегами с помощью sed или awk"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Программирование под UNIX (Shell скрипты)
Изначальное сообщение [ Отслеживать ]

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

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "поменять регистр между двумя тегами с помощью sed или awk"  +/
Сообщение от erera22 (ok) on 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

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

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

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

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "поменять регистр между двумя тегами с помощью sed или awk"  +/
Сообщение от PavelR (ok) on 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  

Можно.

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

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

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


Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

5. "поменять регистр между двумя тегами с помощью sed или awk"  +/
Сообщение от plgrm44 (ok) on 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


Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

6. "поменять регистр между двумя тегами с помощью sed или awk"  +/
Сообщение от plgrm44 (ok) on 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"

Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

7. "поменять регистр между двумя тегами с помощью sed или awk"  +/
Сообщение от Dexel (ok) on 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 так проектировали. Принцип "Зачем просто, если можно сложно".

Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру