Каким регулярным выражением заменить название <title> назанием первого <h1>? (Geany)

Модератор: /dev/random

a617308
Сообщения: 6

Каким регулярным выражением заменить название <title> назанием первого <h1>? (Geany)

Сообщение a617308 » 03.07.2014 10:41

Есть html

<title>zagolovok1</title>
...
<h1><font style="" bold;"="">Заголовок1</font></h1>


Каким регулярным выражением заменить название <title> назанием первого <h1>? (Geany)

<title>zagolovok1</title>
на
<title>Заголовок1</title>

Должно стать так:

<title>Заголовок1</title>
...
<h1>Заголовок1</h1>
Спасибо сказали:

Аватара пользователя
SLEDopit
Модератор
Сообщения: 4638
Статус: фанат консоли (=
ОС: GNU/Debian, RHEL

Re: Каким регулярным выражением заменить название <title> назанием первого <h1>? (Geany)

Сообщение SLEDopit » 03.07.2014 11:33

Код: Выделить всё

sed '/title/,/h1/N;/title/{N;s#\(<title>\).*\(</title.*<h1>\)\(<[^>]*>\)*\([^<]*\)\(<.*\)#\1\4\2\3\4\5#}'


если ещё и тэги в h1 нужно убрать, чтобы как в примере, то вот:

Код: Выделить всё

sed '/title/,/h1/N;/title/{N;s#\(<title>\).*\(</title.*<h1>\)\(<[^>]*>\)*\([^<]*\)\(<[^>]*>\)*\(</h1>\)#\1\4\2\4\6#}'


upd. ой, не заметил, что тут про текстовый редактор. тогда, видать, не подойдёт.
UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity. © Dennis Ritchie
The more you believe you don't do mistakes, the more bugs are in your code.
Спасибо сказали:

a617308
Сообщения: 6

Re: Каким регулярным выражением заменить название <title> назанием первого <h1>? (Geany)

Сообщение a617308 » 04.07.2014 10:45

SLEDopit писал(а):
03.07.2014 11:33

Код: Выделить всё

sed '/title/,/h1/N;/title/{N;s#\(<title>\).*\(</title.*<h1>\)\(<[^>]*>\)*\([^<]*\)\(<.*\)#\1\4\2\3\4\5#}'


если ещё и тэги в h1 нужно убрать, чтобы как в примере, то вот:

Код: Выделить всё

sed '/title/,/h1/N;/title/{N;s#\(<title>\).*\(</title.*<h1>\)\(<[^>]*>\)*\([^<]*\)\(<[^>]*>\)*\(</h1>\)#\1\4\2\4\6#}'


upd. ой, не заметил, что тут про текстовый редактор. тогда, видать, не подойдёт.


А как сделать это автоматически сразу для всех .htm* в каталоге с подкаталогами?
Спасибо сказали:

Аватара пользователя
Bizdelnick
Модератор
Сообщения: 15050
Статус: grammatikführer
ОС: Debian GNU/Linux

Re: Каким регулярным выражением заменить название <title> назанием первого <h1>? (Geany)

Сообщение Bizdelnick » 04.07.2014 11:13

a617308 писал(а):
04.07.2014 10:45
А как сделать это автоматически сразу для всех .htm* в каталоге с подкаталогами?

find /путь/к/каталогу -type f -name '*.htm*' -exec sed -i 'регулярка' {} +
Пишите правильно:
в консоли
вкупе (с чем-либо)
в общем
вообще
в течение (часа)
команда
новичок
нюанс
приемлемо
проблема
пробовать
трафик
Спасибо сказали: