Как заменить слова в нескольких строках в редакторе vi?

Как заменить слова в нескольких строках в редакторе vi?

Например, в редакторе vi создается файл с 8 строками слова today, и мне было интересно, как изменить 4 строки на слово yesterday с помощью команды once.

решение1

Большинство ex-команд (т. е. команд, вызываемых нажатием :(двоеточия) и затем имени команды), которые действуют на содержимое файла, позволяют указать диапазон перед командой. Этот диапазон определяет, какие строки затрагиваются командой. Общая форма диапазона — это два числа, разделенные запятой, и команда действует на все строки от первого числа до второго числа включительно. Например,

1,4s/today/yesterday/g

заменяет все вхождения todayby yesterdayв первых четырех строках файла.

Вы можете поставить знак перед числом, чтобы сделать его относительным к текущей строке. Например

-1,+1s/today/yesterday/g

выполняет замену на предыдущей строке, текущей строке и следующей строке. Если вы включаете запятую, но пропускаете одну из цифр, это означает текущую строку, например

,+1s/today/yesterday/g

выполняет замену на текущей строке и на следующей строке. Вы также можете использовать $вместо числа, чтобы обозначить последнюю строку файла. Если вы пропустите запятую и укажете только одно число, то команда будет действовать только на этой строке, например

+1s/today/yesterday/g

выполняет замену только в следующей строке.

решение2

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

:n,m s/today/yesterday/

т.е. замените слово «сегодня» на «вчера» со строки n по m.

решение3

Попробуй это :

Перейдите в командный режим в редакторе vi и попробуйте выполнить следующую команду:

:%s/today/yesterday/g

g - заменить сегодня на вчера во всем мире.

Связанный контент