Метасимволы подменяют собой какой-то один символ.
| . | точка. Точка означает любой символ. Следует учесть, что символ всё-таки должен присутствовать, например RE /x.z/ будет найдено в строке "xyz", "x-z", "abcxRzdef", но не в строке "_xz_". |
||||
| [abc] | символьный класс. на этом месте может быть только a, b, или c. |
||||
| [0-9] | символьный диапазон. Под диапазон попадают все символы диапазона, здесь 0,1,2,3,4,5,6,7,8,9 |
||||
| [^xyz] | класс исключения. вместо этого метасимвола будет найден любой символ кроме x или y или z |
||||
| \s | Пробельные символы. Здесь может быть пробел или табуляция, в много строчном режиме этот метасимвол так-же соответствует переводу строки \S это любой не пробельный символ. |
||||
| \w | словообразующий символ Эквивалентно [a-zA-Z0-9_]. Задаёт символы внутри слова Кроме того, в русской локали и в кодировке UTF-8 с \w совпадают так-же русские буквы. \W это не словообразующий символ. |
||||
| \n | перевод строки. в обычном режиме работы sed, этот символ никогда не встречается в строке(иначе это не одна строка, а 2) |
||||
| \oXXX | Восьмеричное представление символа | ||||
| \. | Экранирование. любой спецсимвол можно заэкранировать, если нам нужна к примеру именно точка, а не "любой символ". Существует 2 вида написания регэкспов, обычный, и расширенный(ERE). В дальнейшем я буду использовать только расширенный способ записи, так как он короче и понятнее. Что-бы sed работала в расширенном режиме необходима команда -r. ERE отличается от RE тем, что в ERE почти все спецсимволы не нужно экранировать слешем. Пример: Обычное(RE)
Расширенное(ERE)
|
||||
| \xzz | любой символ в шестнадцатеричной записи. Например /\x21/ то-же что /!/ |