
例如,在 vi 編輯器中建立了一個包含 8 行單字「today」的文件,我想知道如何使用一次命令將 4 行更改為單字「昨天」。
答案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 - 在全域範圍內將今天替換為昨天。