Есть 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>
Каким регулярным выражением заменить название <title> назанием первого <h1>? (Geany)
Модератор: /dev/random
-
- Модератор
- Сообщения: 4814
- Статус: фанат консоли (=
- ОС: GNU/Debian, RHEL
Re: Каким регулярным выражением заменить название <title> назанием первого <h1>? (Geany)
Код: Выделить всё
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.
The more you believe you don't do mistakes, the more bugs are in your code.
-
- Сообщения: 6
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. ой, не заметил, что тут про текстовый редактор. тогда, видать, не подойдёт.
А как сделать это автоматически сразу для всех .htm* в каталоге с подкаталогами?
-
- Модератор
- Сообщения: 20034
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: Каким регулярным выражением заменить название <title> назанием первого <h1>? (Geany)
find /путь/к/каталогу -type f -name '*.htm*' -exec sed -i 'регулярка' {} +
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |