Команды поиска и замены строк

Для поиска строки по шаблону можно воспользоваться следующими коман- дами:

r /шаблон — для поиска с текущей позиции до конца файла;

r ?шаблон — для поиска с текущей позиции в начало файла.


 

Эти команды установят курсор на начало первой найденной строки, удовле- творяющей шаблону. Для продолжения поиска надо набрать команду n.

Поиск с заменой найденных строк в vi осуществляется с помощью команды режима последней строки :s/шаблон/замена/.

Для демонстрации команд замены текста здесь использован текст, приведен- ный в примере 7.1.

 

Пример 7.1. Исходный текст

 

The top ten & ten CC. The best Ten in the World of tens. Another ten.

Another Ten.

 

 

В приведенном тексте несколько раз встречается слово ten, а также Ten.

Предполагается, что курсор находится в первой строке текста.

Для замены в текущей строке первого вхождения строки ten на 10 следует ввести команду, приведенную в примере 7.2.

 

Пример 7.2. Поиск и замена строк

 

:s/ten/10/

 

 

В результате команды из примера 7.2, получим текст, показанный в приме- ре 7.3.

 

Пример 7.3. Текст после замены слова ten на строку 10

 

The top 10 & ten CC. The best Ten in the World of tens. Another ten.

Another Ten.

 

 

Первое вхождение строки ten было заменено на 10 в текущей строке, но не в других строках. Обратите внимание: было заменено именно первое вхож- дение строки.

Если же необходимо в текущей строке заменить все вхождения, а не только первое, то в конец этой команды надо добавить модификатор g (от англ. go) (пример 7.4).


 

Пример 7.4. Поиск всех вхождений шаблона в строке

 

:s/ten/10/g

 

Результат работы команды из примера 7.4 показан в примере 7.5.

 

Пример 7.5. Текст после замены всех вхождений ten строкой 10

 

The top 10 & 10 CC. The best Ten in the World of 10s. Another ten.

Another Ten.

 

Бывает необходимо заменить строки без учета их регистра, например, ten

и Ten на 10. Это позволяет сделать модификатор i (пример 7.6).

 

Пример 7.6. Поиск и замена с игнорированием регистра

 

:s/ten/10/i

 

В примере 7.7 показан текст после выполнения команды из примера 7.6.

 

Пример 7.7. Текст после поиска с игнорированием регистра

 

The top 10 & 10 CC. The best 10 in the World of 10s. Another ten.

Another Ten.

 

Для замены в нескольких строках в приведенные выше команды требуется добавить указание диапазона поиска. Например, для поиска по всему файлу и замены всех вхождений искомой строки можно ввести команду, приведен- ную в примере 7.8.

 

Пример 7.8. Поиск всех вхождений строки по всему файлу

 

:%s/ten/10/gi

 

Оператор % указывает диапазон поиска — весь файл. Модификатор i добав- лен для игнорирования регистра при поиске.

В результате выполнения команды из примера 7.8 текст будет выглядеть так, как это показано в примере 7.9.


 

Пример 7.9. Текст после замены строк по всему тексту с игнорированием регистра

 

The top 10 & 10 CC. The best 10 in the World of 10s. Another 10.

Another 10.

 

Диапазон поиска можно указывать:

r номерами начальной и конечной строк, например: :3,5s/ten/10/;

r номером конечной строки для замены с текущей строки: :,5s/ten/10/;

r смещением от текущей строки: :,+5s/ten/10/;

r символом конца файла: :3,$s/ten/10/.








Дата добавления: 2015-06-12; просмотров: 697;


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

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.006 сек.