Помогите дописать скрипт, SED

Тема в разделе "Администрирование серверов", создана пользователем pash_it, 31 авг 2009.

Статус темы:
Закрыта.
Модераторы: mefish, stooper
  1. pash_it

    pash_it Постоялец

    Регистр.:
    5 окт 2007
    Сообщения:
    127
    Симпатии:
    4
    Скрипт
    PHP:
    find . -type f -name *.html -exec sed -'s/te\n\n\nst/test/' {} \;
    Есть файл
    PHP:
    <html>

    te

    st
    </html>
    Вот нужно чтобы все пустые строчки где te st удалило, осталось только слово test.
    Не могу найти, как правильно указать скрипту пустые строки чтобы удалил между te st указал как \n или пробовал ^$ не пашет(
     
  2. d1914

    d1914

    Заблокирован
    Регистр.:
    4 май 2007
    Сообщения:
    409
    Симпатии:
    64

    Убрать переводы строк в тексте

    $ sed -ni 'H;${x;s/\n//g;p}' file

    http://www.posix.ru/shell/sed_tips/#56
    Наверное нужно плясать отсюда?
     
    pash_it нравится это.
  3. pash_it

    pash_it Постоялец

    Регистр.:
    5 окт 2007
    Сообщения:
    127
    Симпатии:
    4
    я тоже вчера нашел что чтобы использовать \n нужно перед ставить N;
    Но все равно не могу написать правильно :ah:
     
  4. V I R U S

    V I R U S Постоялец

    Регистр.:
    6 апр 2007
    Сообщения:
    94
    Симпатии:
    25
    Интересно, зачем такое? Для подчистки кода?
     
  5. pash_it

    pash_it Постоялец

    Регистр.:
    5 окт 2007
    Сообщения:
    127
    Симпатии:
    4
    Да, для настоящего программиста, это не составит труда понять как его правильно прописать это N;\n несколько раз.. Я уже 3 дня с ним парюсь :mad:
     
  6. pash_it

    pash_it Постоялец

    Регистр.:
    5 окт 2007
    Сообщения:
    127
    Симпатии:
    4
    Ну, что не у кого, не каких, гениальных идей нету? :bc:
     
  7. propovednik

    propovednik Постоялец

    Регистр.:
    16 май 2008
    Сообщения:
    104
    Симпатии:
    21
    У меня есть, но не гениальная - пишем пхп скрипт обхода директорий, получаем файлы, xml парсером получаем содержимое нужного тега (html) - циклом начиная с сотни (99, 98, ... 1) пробелов заменяем их пустым символом.
    Криво, косо, но если очень надо - сработает.
     
  8. pash_it

    pash_it Постоялец

    Регистр.:
    5 окт 2007
    Сообщения:
    127
    Симпатии:
    4
    propovednik, нет...

    Я придумал по другому,
    1й скрипт находит te и удаляет, второй скрипт находит st и заменяет на test
     
Статус темы:
Закрыта.