grep -Erni + "text you wanna search"
Команда будет искать рекурсивно во всех файлах и каталогах текущего каталога и печатать результат.
Примечание: если ваш выход grep не окрашен, вы можете изменить его, используя grep = 'grep --color = always' alias в вашем файле src оболочки
Если вы используете соответствующий класс или библиотеку, они будут выполнять экранирование для вас.
Есть только пять:
" "
' '
< <
> >
& &
Экранирующие символы зависят от того, где специальный символ используемый.
Примеры могут быть проверены в службе валидации разметки W3C .
Безопасный способ состоит в том, чтобы избежать всех пяти символов в текст, однако, три символа "
, '
и >
не должны быть экранированы в тексте:
<?xml version="1.0"?>
<valid>"'></valid>
Безопасный способ - убежать все пять символов в атрибутах, однако, символ >
не должен быть экранирован в атрибутах:
<?xml version="1.0"?>
<valid attribute=">"/>
Символу '
не нужно экранировать в атрибутах, если кавычки "
:
<?xml version="1.0"?>
<valid attribute="'"/>
Аналогично, "
не нужно экранировать в атрибутах, если кавычки '
:
<?xml version="1.0"?>
<valid attribute='"'/>
Все 5 специальных символов не должны удаляться в комментариях:
<?xml version="1.0"?>
<valid>
<!-- "'<>& -->
</valid>
Все 5 специальных символов не должны выходить в секции CDATA :
<?xml version="1.0"?>
<valid>
<![CDATA["'<>&]]>
</valid>
Все 5 специальных символов не должны быть экранированы в инструкциях обработки XML:
<?xml version="1.0"?>
<?process <"'&> ?>
<valid/>
HTML имеет собственный набор escape-кодов w он покрывает намного больше персонажей.
Согласно спецификациям Консорциума World Wide Web (w3C), существует 5 символов, которые не должны отображаться в их литеральной форме в документе XML , за исключением случаев, когда они используются в качестве разделителей разметки или внутри комментарий, инструкция по обработке или раздел CDATA. Во всех других случаях эти символы должны быть заменены либо с использованием соответствующего объекта, либо с помощью числовой ссылки в соответствии со следующей таблицей:
Исходный символ XMLXML замещение XML числовая замена & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; ; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP ; & амп; л; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & амп; # 60; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP ; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; > & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP ; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & амп; GT; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & амп; # 62; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP ; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; «& NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; ; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & амп; # 34; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & амп; # 38; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; «& NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP ; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & амп; APOS; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & амп; # 39; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; также использоваться в HTML, за исключением & amp; ap ;, который был введен с XHTML 1.0 и не объявлен в HTML 4. По этой причине и для обеспечения ретро-совместимости спецификация XHTML рекомендует использовать & amp; # 39; .
>
должен быть экранирован, если он следует за ]]
в пределах содержимого, если только он не предназначен для того, чтобы быть частью разделителя ]]>
, который указывает конец раздела CDATA.
– Lee D
25 April 2014 в 18:45
Экранирующие символы различаются для тегов и атрибутов.
Для тегов:
< <
> > (only for compatibility, read below)
& &
Для атрибутов:
" "
' '
http: //www.w3.org/TR/2008/REC-xml-20081126/#syntax
Символ амперсанда (& amp;) и левая угловая скобка (& lt;) не должны отображаться в их литеральной форме, кроме случаев, когда они используются в качестве разделителей разметки или в комментарии, инструкции обработки или секции CDATA. Если они необходимы в другом месте, они должны быть экранированы с использованием либо числовых символов, либо строк «& amp;» и «& amp; lt;» соответственно. Прямоугольная скобка (>) может быть представлена с использованием строки «& amp; gt;» и должна, для совместимости, экранироваться с использованием «или» или символьной ссылки, когда она появляется в строке «]]> «в содержании, когда эта строка не помещает конец раздела CDATA.
Чтобы позволить значениям атрибута содержать как одиночные, так и двойные кавычки, апостроф или символ одной кавычки (') могут быть представлены как «& amp;», и символ двойной кавычки («) как« & amp; quot; ".
blockquote>
Новый, упрощенный ответ на старый, часто задаваемый вопрос ...
<
как <
, если только <
не запускает <tag/>
. Escape &
как &
, если только &
не запускает &entity;
. attr="
'
Одиночные кавычки '
в пределах двойных кавычек. "
attr='
"
Двойные кавычки "
в порядке одинарной кавычки. '
В противном случае "
выбрано как "
и '
как '
. <!--
В комментариях -->
ничего не должно быть экранировано, но никакие строки --
не разрешены. <![CDATA[
В CDATA ]]>
ничего не должно быть экранировано, но никакие строки ]]>
не разрешены. <?PITarget
В PIs ?>
ничего не должно быть экранировано, но никакие строки ?>
не разрешены. ]]>
как ]]>
, если только ]]>
не закончит раздел CDATA. (Это правило применяется к символьным данным вообще, даже вне секции CDATA.) ]]>
должно быть экранировано как ]]>
, даже если оно не находится в разделе CDATA. Самый простой способ достижения этого может заключаться в always i> escape >
как >
.
– Michael Kay
29 May 2018 в 15:24
]]>
, но предпочел отодвинуть ее на эзотерику, а не предлагать избежать >
always i> (чего не должно быть, как вы знаете). Моя цель здесь, чтобы правила XML escaping легко запоминались и i> на 100% точным .
– kjhughes
3 June 2018 в 14:01
в дополнение к общеизвестным пяти символам [& lt ;,>, & amp ;, ", '] Я также мог бы избежать символа вертикальной вкладки (0x0B). Он действителен UTF-8, но недействителен XML 1.0 и даже многие библиотеки (включая libxml2) пропускают его и молча выводят недопустимый XML.
Только & lt; и & amp; должны быть экранированы, если они должны обрабатываться символьными данными, а не разметкой:
Возможно, это поможет:
Список ссылок на символы XML и HTML-символов :
В документах SGML, HTML и XML логические конструкции, известные как символьные данные и значения атрибутов, состоят из последовательностей символов, в которых каждый символ может проявляться непосредственно (представляющий себя) или может быть представлен рядом символов, называемых символьной ссылкой, из которых существуют два типа: числовое символьная ссылка и ссылка на символ. В этой статье перечислены ссылки на объекты символов, которые действительны в документах HTML и XML.
blockquote>В этой статье перечислены следующие пять предопределенных XML-объектов:
quot " amp & apos ' lt < gt >
Сокращен из: http://en.wikipedia.org/wiki/XML#Escaping
Существует пять предопределенных сущностей:
< represents "<"
> represents ">"
& represents "&"
' represents '
" represents "
«Все разрешенные символы Юникода могут быть представлены с помощью числовой символьной ссылки». Например:
中
Большинство управляющих символов и других диапазонов Юникода специально исключены, что означает (я думаю), что они могут " t происходит либо с экранированным, либо прямым:
Это зависит от контекста. Для контента это & lt; и & amp ;, и]]> (хотя строка из 3 вместо одного символа). Для значений атрибутов это & lt; и & amp; и «и». Для CDATA это]]>.