Удалить строку с специальными символами

У меня есть файл с именем test аналогичный следующему:

 hello my name <h6>test morning</h6> is bob 

Я знаю, что буду использовать:

sed -i -- 's/name//g' test

Чтобы удалить name из файла, но как удалить <h6>test morning</h6> ?

Строка может быть в любом месте файла, и файл может быть чем-то вроде файла .css или .html .

  • строковые манипуляции без awk или sed
  • Преобразование простых данных в json-файл
  • Как заменить слово внутри файла .DOCX с помощью командной строки Linux?
  • Очень простой вопрос H / W с использованием трубы и grep
  • Как сделать просмотрщик PDF восприимчивым к изменениям в Debian
  • wget on Centos 7 Terminal как загрузить только текст без кода стиля сайта
  • Разделите базовое имя файла, сохраните часть каталога
  • Почему эта команда xargs не работает?
  • 2 Solutions collect form web for “Удалить строку с специальными символами”

    Для таких случаев вы можете использовать любой символ вместо / . Например

     sed -i 's|<h6>test morning</h6>||g' test 

    Для строковых шаблонов вы должны избегать первого

     sed -i '\|<h6>test morning</h6>|s///g' test 

    Если у вас мало / в шаблоне может быть легко избежать его прямо

     sed -i '/<h6>test morning<\/h6>/s///g' test 

    Перл на помощь!

    В Perl вы можете использовать переменную в части шаблона, и вы можете использовать quotemeta (или соответствующий escape \Q ) для выхода из специальных символов:

     REPLACE='<h6>test morning</h6>' perl -pe 's/\Q$ENV{REPLACE}//' 
    Linux и Unix - лучшая ОС в мире.