例如,在 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 - 在全局范围内将今天替换为昨天。