Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > *NIX системы: Общие вопросы > sed перенос строки


Автор: Black_leopard 2.5.2011, 17:25
Здравствуйте!

Уже который час боюсь чтобы составить правильно регулярку для sed.

У меня есть задача: удалить из файла код следующей структуры:
Код

<script>date=new Date();var .... gserkewg() .....
e(s);</script>


пишу следующий код для SSH:
Код

find -name "menu.php" -exec sed -e "s/<script>.*gserkewg.*<\/script>//g" {} \;


но он не находит текст, т.к. в тексте используется перенос строки между <script> и </script> (если написать в одну строчку, то будет все работать).

Подскажите, пожалуйста, как записывается в этом случае маска поиска?

Автор: rsm 2.5.2011, 19:03
Решение, возможно, не самое изящное и гениальное, но работает:

Код

find -name "menu.php" | xargs cat | tr '\n' '\0' | sed 's|<script>[^<]*</script>||gi' | tr '\0' '\n'

/мысли вслух/ Когда уже наконец появится подсветка синтаксиса для bash?!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)