Модераторы: powerfox, ZeeLax
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Регулярные выражения и редактор sed 
:(
    Опции темы
BlackRu
Дата 10.10.2010, 15:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 431
Регистрация: 14.9.2009

Репутация: 2
Всего: 4



Должен признаться, что даже после чтения статей (кстати, неплохой учебник http://drbatty.ru/sed/ ) по sed, мне не все понятно, но думаю я не последний человек, который будет застопориваться при написании или разборе выражений с sed. 
Поэтому хотелось бы сделать топик постоянным и привлекать к нему специалистов для помощи новичкам, таким как я. Топик создан в целях ликбеза. 

 Вот конкретный найденный мной пример, который исправно работает, но мне не совсем понятен:

Код

sed    -e :a -e 's/<[^>]*>//g;/</N;//ba'


Код удаляет все теги html. Не могу понять, почему стоит флаг -e дважды. 
Если у кого-то найдется время, прокомментируйте код подробно, плз. 



--------------------
Удалена администрацией форума
PM MAIL WWW Skype   Вверх
ZeeLax
Дата 11.10.2010, 06:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 4388
Регистрация: 20.8.2006
Где: Алма-Ата

Репутация: 26
Всего: 88



Топик с кучей примеров становится мусором после одной-двух страниц. Никто не будет выискивать "похожий на мой, а лучше как мой" пример.


--------------------
Utility is when you have one telephone, luxury is when you have two, opulence is when you have three — and paradise is when you have none.
— Doug Larson
PM MAIL WWW ICQ Skype Jabber   Вверх
BlackRu
Дата 11.10.2010, 15:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 431
Регистрация: 14.9.2009

Репутация: 2
Всего: 4



Вообще, хотелось бы просто увидеть ответ на вторую часть вопроса. Может, я и погорячился. 

Это сообщение отредактировал(а) BlackRu - 11.10.2010, 17:33


--------------------
Удалена администрацией форума
PM MAIL WWW Skype   Вверх
nickless
Дата 12.10.2010, 18:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Гентозавр
****


Профиль
Группа: Участник Клуба
Сообщений: 2976
Регистрация: 29.8.2005
Где: Germany

Репутация: 41
Всего: 181



Цитата(BlackRu @  10.10.2010,  14:30 Найти цитируемый пост)
Если у кого-то найдется время, прокомментируйте код подробно, плз. 


Код

sed -e :a -e 's/<[^>]*>//g;/</N;//ba'


Для начала, sed может выполнять несколько комманд по очереди, например
Код

echo 'abc' | sed -e 's/bc/BC/' -e 's/aB/Ab/'

выдаст AbC

Комманды можно писать на разных строках, разделять ; или просто давать несколько параметров -е, т.е. можно написать и так:
Код

sed -e \
':а
s/<[^>]*>//g
/</N
//ba'


:a - это label (для goto)
s/<[^>]*>//g - это удаляет тэги глобально во всём паттерн-спейсе
/</N - по дефолту, паттерн-спейс = 1 строка, эта комманда добавляет следующую строку после строки содержащей < к паттерн-спейсу
//ba - goto а

Добавлено через 2 минуты и 59 секунд
ЗЫ Добавлять следующую строку надо для случаев вроде:
Код

<bla blub="ololol"
        asdf="fdsa" />



--------------------
user posted image

Real men don't use backups, they post their stuff on a public ftp server and let the rest of the world make copies
- Linus Torvalds
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Linux/UNIX: Oбщие вопросы"
nickless
Imple
nerezus

В тему здесь вопросы общие - не привязанные к определенному ПО или дистрибутиву BSD/Linux/UNIX.
Например вопросы о выборе ОС для определенных задач (но если Вы просто хотите узнать "Какой дистрибутив лучше", то для этого есть Клуб юнуксоидов).
Общие вопросы по shell-программированию тоже лучше задавать здесь.


  • Вопросы мобильной разработки тут
  • Вы должны соблюдать правила форума.
  • Помните: какой вопрос, такой и ответ. Прежде чем задать вопрос прочитайте вот эту статью на форуме CIT.
  • Оскорблять запрещается.
  • Религиозные войны в Религиозных войнах.
  • Общение "просто так" в Клубе юнуксоидов. В отличие от многих других разделов, здесь разрешается сдержанно оффтопить и юморить в тему.

За интересные статьи, находки, решения, программы и просто реальную помощь будут ставиться + в репу).


В данный момент этот раздел модерируют nerezus, nickless, powerfox, pythonwin, Imple и ZeeLax. Если вы хотите помочь нам, пишите в ПМ и мы обсудим.


Спасибо. И use UNIX or die; С уважением, nerezus, nickless, powerfox, pythonwin, Imple, ZeeLax.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | *NIX системы: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0503 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.