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

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

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

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

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

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

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

  • Удалите строку, используя определенные значения (-)
  • Как выполнить действие только в первой строке?
  • wget on Centos 7 Terminal как загрузить только текст без кода стиля сайта
  • Каковы альтернативные инструменты для поиска файлов в полном объеме?
  • Заменить между шаблонами, которые начинаются и заканчиваются в разных строках
  • Как найти строку после регулярного выражения в одной строке текста?
  • Команда, чтобы увидеть, находится ли слово в списке файлов и выводит, сколько файлов оно находится в
  • замените с начала строки на 1 из нескольких шаблонов в конец другой строки со вторым шаблоном
  • 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 - лучшая ОС в мире.