Операционная система UNIX

       

Метасимвол & (амперсенд)



6.16.7. Метасимвол & (амперсенд)

Символ "&" используется в первую очередь для сокращения вводимого текста.

Предположим, имеется строка: В ЭТО ВРЕМЯ и требуется преобразовать ее в строку: В ЭТО ВРЕМЯ СУТОК конечно, для этого можно воспользоваться командой: s/ВРЕМЯ/ВРЕМЯ СУТОК/ однако требование повторно указывать слово "ВРЕМЯ" кажется неразумным. Для того, чтобы избежать этого повторения, используется символ "&". В правой части команды подстановки амперсенд означает "найденный текст", так что можно ввести команду: s/ВРЕМЯ/& СУТОК/ где "&" будет означать "ВРЕМЯ". Конечно, в данном примере экономия будет незначительной, однако если количество символов велико или представляет собой нечто вроде ".*", которому соответствует большой кусок текста, экономится много вводимых символов. Снижается также вероятность совершения ошибки при вводе заменяющего текста. Например, для того, чтобы заключить в скобки строку, независимо от ее длины, можно использовать команду: s/.*/(&)/

Амперсенд может встречаться в правой части команды несколько раз. Команда: s/ВРЕМЯ/& СУТОК И & ГОДА/ построит строку: ВРЕМЯ СУТОК И ВРЕМЯ ГОДА а команда: s/В ЭТО ВРЕМЯ/&? &!!!/ преобразует исходную строку в: В ЭТО ВРЕМЯ? В ЭТО ВРЕМЯ!!!

Чтобы получить настоящий символ "&", используется обратная дробная черта для отмены его специального значения. Команда: s/амперсенд/\&/ заменит слово "амперсенд" на символ "&". Обратите внимание на то, что символ "&" является специальным только в правой части команды, в левой части он не имеет специального значения.



Содержание раздела