|
|||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Команда замены (s)Команда замены "s" предназначена для изменения отдельных слов или символов в пределах одной строки или группы строк. Общий формат команды: [n[, k]]s/x/y/[команда]<CR>где x - группа символов или слов в строке, которые надо заменить (старый текст); Если номера строк не указаны, замена осуществляется в текущей строке. Если указан номер только одной строки, то замена производится только в одной строке. Для реализации замены в группе строк надо указать номера начальной (n) и конечной (k) строк, в пределах которых надо произвести замену. При выполнении данной команды редактор просматривает строки, начиная с номера "n" и кончая номером "k" включительно. При обнаружении в какой-либо из них искомой группы "x" редактор заменяет ее на "y". Редактор не печатает результат замены автоматически, поэтому для контроля рекомендуется вместе с командой замены задавать команду печати. Если в командной строке указаны "n" и "k" и команда печати, то печатается только последняя измененная строка. Текущей строкой после выполнения команды замены остается последняя строка, в которой произведена замена части текста. Пример. 1, $s/a/a2/pзамена символа "a" на "a2" производится в строках с 1-й по последнюю. Текущей станет последняя строка, она будет распечатана. Используя команду "s", можно удалить группу символов (или один символ) в строке. Для этого команда замены должна быть задана следующим образом: s/x//что фактически означает: заменить группу символов в текущей строке на "пусто", т.е. просто удалить заданные символы из строки. Команда "s" заменяет лишь первую найденную искомую группу символов в строке. Если же надо заменить все случаи появления заданной комбинации символов в строке, используется команда "g": s/x/y/gПримеры. s/c/d/gpвсе появления символа "c" в текущей строке заменить символом "d" и распечатать строку; 1, $s/c/d/gpзамена всех символов "c" на символ "d" во всем буфере с печатью последней измененной строки. В следующем примере содержится ошибка ввода. Пока строка, содержащая ошибку является текущей, произведите корректировку в ней. Старый текст: "ai" в слове "airor", новый текст - "er". Экран выглядит следующим образом: Пример. a<CR> In the beginning, I made an airor.<CR>.<CR>.p<CR> In the beginning, I made an airor.<CR> s/ai/er/<CR>Обратите внимание, что ed не дает ответа на команду замены. Чтобы проверить, что команда выполнилась успешно, выполните команду "p" или "n" как часть командной строки замены..lin В следующем примере команда "n" используется для проверки того, что слово "file" заменит слово "toad". Пример. .p<CR> This is a last toad s/toad/file/n<CR> 1 This is a last fileЧтобы заменить текст в строке, отличной от текущей, укажите номер строки. Например, на следующем экране командная строка включает номер строки, которая будет изменена (строка 1), т.к. текущей является строка 3. Пример. 1, 3p<CR> This is a past toad testing testing come in toad.<CR> come in toad 1s/past/test<CR> This is a test toadКак вы видите, ed напечатал последнюю строку автоматически после изменения, т.к. последний ограничитель опущен. Наиболее универсальным средством ed является глобальная замена. Поместив команду "g" после последнего ограничителя в командной строке замены, вы сможете заменить каждое появление шаблона в каждой указанной строке. Заменим строку "es" на "ES": u<CR> 1, $p<CR> This is a last toad testing testing come in toad testing 1, 2, 3 1, $s/es/ES/g<CR> This is a last toad tESting tESting come in toad tESting 1, 2, 3Другой способ - это использование глобального шаблона для поиска вместо указания границ строк: u<CR> 1, $p<CR> This is a test toad testing testing come in toad testing 1, 2, 3 g/test/s/es/ES/g<CR> 1, 3p<CR> This is a tESt toad tESting tESting come in toad tESting 1, 2, 3Рассмотрим следующие шаблоны: /шаблон<CR>?шаблон<CR> v/шаблон<CR>В следующем примере формат поиска v/шаблон используется для нахождения строк, которые не содержат шаблон "testing". Затем команда "s" используется для замены шаблона "in" на шаблон "out" в этих строках: v/testing/s/in/out<CR> This is a test toad come out toad
Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.003 сек.) |