Intereting Posts
Уменьшение числа с помощью sed Что такое специальные символы и блокировать специальные файлы в системе unix? Виртуальный хост Apache указывает на неправильный DocumentRoot Как запустить приложение в полноэкранном режиме без загрузки среды рабочего стола IceWM? Сохранение SSH-туннеля во время моей системы – init.d или что-то еще? Где расположены заголовки для скотча и PT-Scotch? Текстовый редактор, который позволяет раскрасить произвольный текст (и экспортировать его)? Почему разделы USB и емкость диска не согласованы между fdisk, parted, dmesg & / dev / sdXy Как сделать USB debian сжать диск для PPC? Что называется символом ^ М? Как заменить часть имени хоста на xauth (OLD: как перенаправить вывод команды xauth?) Где MySQL установлен на моем компьютере? Получение моего Smart Card Reader для работы в Linux Использование node.js и shelljs в качестве интерактивной оболочки По умолчанию опции DOCS, NLS и EXAMPLES отключены для всех портов FreeBSD

Как читать несколько строк вместо строк

Я вижу, что в моем коде я могу изменить строку, если весь код основан на этой строке. Пример: <p class="example">this is an example Happy Holidays</p> . Однако, если </p> находится во второй строке, код будет передавать эту строку.

Каков наилучший способ обнаружения, пока линия не закончится для определенных тегов?

Текстовые утилиты работают на линиях (текстовые строки (не слишком длинные) последовательности символов, отличных от NUL, завершаемые символом новой строки). awk – это единственная стандартная утилита, которую можно заставить работать над записью, разделенной другими вещами, чем символы новой строки, поэтому awk говорит о записи вместо строк .

Например, вы можете использовать > в качестве разделителя записей . Как в:

 awk -v RS='>' ... 

Другой подход заключается в замене символа, который вы хотите использовать в качестве разделителя записей (для других инструментов, чем awk ) с символом новой строки:

 ... | tr '\n>' '>\n' | sed ... | other-text-utility... | tr '\n>' '>\n' 

Предполагается, что вещи, которые вы хотите изменить, не включают вложенные теги HTML, поскольку они будут запускать новые записи.

Это замена

Простой ответ: не используйте оболочку для анализа XML . Вместо этого используйте синтаксический анализатор XML, например, один из многочисленных для Perl: XML :: Parser , XML :: Simple или любой другой язык. Для HTML, HTML :: Parser является опцией (если мы остаемся с Perl).

Если вы хотите использовать bash , вы можете немного поиграть с встроенным read и петлей.