АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Команда замены (s)

Читайте также:
  1. Команда 1, Команда 2, Команда 3
  2. Команда и группа: особенности, различия, условия эффективности работы.
  3. Команда перенесення файлів та груп файлів і перейменування каталогів
  4. Команда печати (p)
  5. Команда поиска контекста
  6. Команда чтения файла (r)
  7. Комбинаторные процессы (замены звуков)
  8. Отличие Тургруппы, имеющей статус «КОМАНДА»
  9. Причин замены Вашего счетчика – масса.
  10. Статистический подход к анализу шифров замены и гаммирования.
  11. Этап «бревно» (вся команда).

Команда замены "s" предназначена для изменения отдельных слов или символов в пределах одной строки или группы строк.

Общий формат команды:

[n[, k]]s/x/y/[команда]<CR>

где x - группа символов или слов в строке, которые надо заменить (старый текст);
y - группа символов или слов, которые заменяют старое значение, указанное как "x" (новый текст);
n, k - номера начальной и конечной строк буфера, в пределах которых осуществляется замена;
/команда - одна из следующих 4-х команд:
g - заменить каждое появление группы символов (x) в каждой указанной строке;
l - отобразить последнюю строку замененного текста, включая непечатаемые символы;
n - отобразить последнюю строку замененного текста, вместе с номерами строк;
p - отобразить последнюю строку замененного текста.

Если номера строк не указаны, замена осуществляется в текущей строке.

Если указан номер только одной строки, то замена производится только в одной строке.

Для реализации замены в группе строк надо указать номера начальной (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

 


1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.003 сек.)