Linux 技术手札

vi / vim 搜寻并取代字串

不管系统管理还是写程式,在档案内对字串进行搜寻并取代十分常用,在 Unix Like 环境下常会用 sed 或 perl 做 search & replace.

如果在开启档案后需要取代字串,其实在 vi 及 vim 内同样可以做搜查及取代字串,做法跟 sed 差不多,以下是 vi 做搜寻及取代的语法:

:%s/search_from/replace_to/g

以上 vi 的语法会将档案内,所有 “search_from” 的字串替换成 “replace_to”。

将上面指令最后加上一个 “c” 字符,可以在取代前,向使用者确认:

:%s/search_from/replace_to/gc

除了可以替换输入的字串,更可以设定搜寻时,略过英文大小写的差异,以下对 “search_from” 及 “SEARCH_FROM” 同样匹配:

:%s/search_from/replace_to/gi

如果不想将档案内所有匹配的字串取代,而是只将目前一行的字串取代,可以将指令最前面的 “%” 删除取可:

:s/search_from/replace_to/g

如果只要取代指定行数范围的字串,可以用以下格式,例如要搜寻并取代第 50 行至 100 行匹配的字串,可以这样:

:50,100s/search_from/replace_to/gc
Exit mobile version