Как удалить все теги HTML с помощью sed?

Я нашел действительно отличный учебник, объясняющий некоторые практические примеры sed .

Последний (номер 10) можно увидеть ниже:

 $ sed -e 's/<[^>]*>//g' This <b> is </b> an <i>example</i>. This is an example. 

Может кто-нибудь, пожалуйста, помогите мне в этом?

Подводя итог, где я нахожусь: 1. Я понимаю: s/x/y/g – команда, сообщающая sed, чтобы «глобально подставить регулярное выражение x с регулярным выражением y 2. Кажется, что флаг -e помещает sed в какой-то «интерактивный режим», со страницы руководства:

 -e command Append the editing commands specified by the command argument to the list of commands. 

Это кажется мне непонятным, потому что похоже, что мы даем sed «список команд», похоже, мы даем ему «список аргументов», поэтому я не уверен в этом. 3. Я понимаю, что первое и единственное < это не что иное, как однократное регулярное выражение < , а последнее > – не что иное, как одиночное регулярное выражение > 4. Я понимаю, что * сообщает sed, чтобы он соответствовал 0 или более встречам узор перед ним, который в этом случае находится внутри скобок; однако, здесь я действительно запутался: может кто-то, пожалуйста, распакуйте [^>]* больше для меня?

поэтому, где я действительно запутался, это:

  • что происходит с -e в простом английском?
  • что происходит с [^>]* ?

Благодаря 🙂

  • Используйте sed, чтобы найти целое слово и заменить
  • Уменьшение числа с помощью sed
  • Первые два поля, которые будут разделены _ и остальными полями, как они есть
  • Получить определенную информацию из файла журнала
  • Как удалить все числа, окруженные <>
  • Поиск в определенном столбце для шаблона и вывода всей строки
  • Заменить значения в столбце, содержащем числа
  • sed или awk, чтобы заменить строку между шаблоном (преобразовать абсолютный путь в относительный)
  • 2 Solutions collect form web for “Как удалить все теги HTML с помощью sed?”

    Последовательность s/<[^>]*>//g является командой механизма обработки sed ; он сообщает, чтобы он выполнял «Поиск и замена». Итак -e 's/..../g' означает «добавить этот поиск и заменить команду на выполнение sed .

    Это может иметь большее значение, если мы выполняем несколько команд в одной команде:

     sed -e '1d' -e '$d' 

    добавит две команды в обработку sed ; «удалить первую строку» и «удалить последнюю строку».

    [^>] Является регулярным выражением, которое означает «любой символ, кроме >

    Таким образом, [^>]* означает «ноль или более любого символа, кроме >

    И поэтому <[^>]*> означает a < , необязательно сопровождаемый non > , а затем > .

    И затем мы помещаем это в команду «поиск и замена», где эта последовательность заменяется ничем, а затем выполняйте ее несколько раз в строке (окончательный g ).

    Это означает, что строка hello <abc> there <def> будет сначала соответствовать <abc> ( < , затем abc соответствует «ноль или больше не > », затем > ) и заменить это ничем, а затем повторить это для <def> . В результате получится hello there .

    (Обратите внимание на дополнительные пробелы, потому что мы не удаляем их!)

    Ограничение сферы действия двумя пунктами:

    • -e сообщает sed что после команды редактирования

    • [^>]* – это шаблон, который соответствует символам с нулем или более, которые могут быть «чем угодно», кроме символа >

    и команда редактирования говорит

     's/<[^>]*>//g' 

    измените все, что соответствует < , за которым следует любое количество символов до первого > ни к чему . И делайте это столько раз, сколько есть совпадений.

    Interesting Posts

    Проблема с запуском «selinux sandbox» с java

    Создайте новую учетную запись linux как пользователь без доступа root

    BIND: resolv ничего не локального до 127.0.0.1

    Может ли Awk читать экранированные строки? Т.е. читать прошлые строки

    Локальный, централизованный, безопасный способ хранения данных входа в FTP, включая пароли

    Убивание дерева процессов в top / htop

    Существуют ли какие-либо дистрибутивы с рабочим гибридным графическим переключателем «на лету»?

    Как выйти из видеороликов в grub?

    wicd – нет связи после загрузки, необходимо перезапустить вручную?

    Как мне получить копете, чтобы скрыть / игнорировать изменения статуса?

    Как различные дистрибутивы изменяют расположение файлов конфигурации для программ?

    Измените только один бит в файле

    Echo не печатает правильное значение для переменной

    cshell alias: как использовать вложенные одинарные кавычки (') в псевдониме cshell

    Многопользовательский одновременный загрузчик с активной статистикой для всех файлов

    Linux и Unix - лучшая ОС в мире.