Операционная система UNIX. Руководство пользователя

Метасимвол * (звездочка)


Метасимвол "*" означает, что символ, за которым он следует, может повторяться произвольное число раз.

Если в тексте имеется большое количество пробелов, их можно сжать, например:

Московское время 18 часов

В результате выполнения команды:

s/e *время 1/e время 1/p

получим:

Московское время 18 часов

Если скомбинировать точку и *, то можно сопоставить все символы. С помощью этой комбинации можно, например, заменить все символы в последней части строки:

p<CR>

Toads are alimy, cold creatures s/are.*/are wonderful and warm <CR>

Toads are wonderful and warm

ed автоматически запоминает последнюю строку символов в шаблоне поиска или замененный текст. Однако вы должны подсказать ed, что нужно повторить замену, используя знак "%". Знак "%" позволяет вам сделать одинаковую замену во многих строках, не используя глобальной замены. Например, заменим слово money на слово gold, повторим последнюю замену в строках от 1 до 3:

1, $n<CR>

1 I love money 2 I need food 3 I use money 4 The IRS wants my money ls/money/gold<CR>

I love gold 3s//g<CR>

I use gold 1, $n<CR>

1 I love gold 2 I need food 3 I use gold 4 The IRS wants my money

ed автоматически запоминает слово money, так что строка не будет повторена между первыми двумя ограничителями. Знак "%" говорит ed - использовать последний шаблон для замены (gold).



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