
Например, в редакторе vi создается файл с 8 строками слова today, и мне было интересно, как изменить 4 строки на слово yesterday с помощью команды once.
решение1
Большинство ex-команд (т. е. команд, вызываемых нажатием :
(двоеточия) и затем имени команды), которые действуют на содержимое файла, позволяют указать диапазон перед командой. Этот диапазон определяет, какие строки затрагиваются командой. Общая форма диапазона — это два числа, разделенные запятой, и команда действует на все строки от первого числа до второго числа включительно. Например,
1,4s/today/yesterday/g
заменяет все вхождения today
by 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 - заменить сегодня на вчера во всем мире.