Метасимвол & (амперсенд)
Символ "&" используется в первую очередь для сокращения вводимого текста.
Предположим, имеется строка:
В ЭТО ВРЕМЯ
и требуется преобразовать ее в строку:
В ЭТО ВРЕМЯ СУТОК
конечно, для этого можно воспользоваться командой:
s/ВРЕМЯ/ВРЕМЯ СУТОК/
однако требование повторно указывать слово "ВРЕМЯ" кажется неразумным. Для того, чтобы избежать этого повторения, используется символ "&". В правой части команды подстановки амперсенд означает "найденный текст", так что можно ввести команду:
s/ВРЕМЯ/& СУТОК/
где "&" будет означать "ВРЕМЯ". Конечно, в данном примере экономия будет незначительной, однако если количество символов велико или представляет собой нечто вроде ".*", которому соответствует большой кусок текста, экономится много вводимых символов. Снижается также вероятность совершения ошибки при вводе заменяющего текста. Например, для того, чтобы заключить в скобки строку, независимо от ее длины, можно использовать команду:
s/.*/(&)/
Амперсенд может встречаться в правой части команды несколько раз. Команда:
s/ВРЕМЯ/& СУТОК И & ГОДА/
построит строку:
ВРЕМЯ СУТОК И ВРЕМЯ ГОДА
а команда:
s/В ЭТО ВРЕМЯ/&? &!!!/
преобразует исходную строку в:
В ЭТО ВРЕМЯ? В ЭТО ВРЕМЯ!!!
Чтобы получить настоящий символ "&", используется обратная дробная черта для отмены его специального значения. Команда:
s/амперсенд/\&/
заменит слово "амперсенд" на символ "&". Обратите внимание на то, что символ "&" является специальным только в правой части команды, в левой части он не имеет специального значения.
| |
Comments: info@citmgu.ru Designed by Andrey Novikov Copyright © CIT |