^
соответствует началу всей входной строки, а $
соответствует концу всей входной строки в регулярном выражении POSIX (Bash использует POSIX ERE). В документе, на который вы ссылаетесь, упоминаются строки, поскольку большинство инструментов обработки текста, таких как sed
, grep
или awk
, по умолчанию читают строку ввода построчно, и в большинстве случаев строка совпадает со строкой.
См. Документация по регулярным выражениям POSIX :
9.3.8 BRE-привязка выражений BRE может быть ограничен соответствующими строками, которые начинают или заканчивают строку; это называется "закрепление". Специальные символы, обозначающие диафрагму и знак доллара, должны рассматриваться как якоря BRE в следующих контекстах:
Круговой знак ('^'
) должен быть якорем при использовании в качестве первого символа всего BRE , Реализация может обрабатывать окружность как привязку, когда используется как первый символ подвыражения. Обхват должен привязывать выражение (или, возможно, подвыражение) к началу строки; только последовательности, начинающиеся с первого символа строки, должны соответствовать с помощью BRE. Например, BRE «^ ab» соответствует «ab» в строке «abcdef», но не соответствует в строке «cdefab». BRE "(^ ab)" может соответствовать предыдущей строке. Переносной BRE должен избегать ведущего окружного в подвыражении, чтобы соответствовать буквальному окружному.
Знак доллара ('$'
) должен быть якорем, когда используется как последний символ целого BRE. Реализация может обрабатывать знак доллара как якорь, когда используется как последний символ подвыражения. Знак доллара должен привязывать выражение (или, возможно, подвыражение) к концу сопоставляемой строки; можно сказать, что знак доллара соответствует концу строки после последнего символа.
BRE, привязанный как '^'
, так и '$'
, должен соответствовать только вся строка Например, BRE "^abcdef$"
соответствует строкам, состоящим только из "abcdef"
.