Linux使用vim进行多文件查找和替换的方法

  vim是Linux系统下常用的文本编辑,通过使用多种shell命令能够实现多文件的查找和替换,那么具体会使用到那些命令呢?下面小编就给大家介绍下Linux系统vim多文件查找和替换的方法。

  在linux平台上,有很多优秀的shell命令组合来做多文件查找/替换,比如这些命令:find,sed,grep,awk,perl。但其他平台比如windows上就没那么方便了,这时候vim内置的多文件查找命令就有用武之地了,虽然比起外部命令来稍微慢了一点。

  vim 多文件查找

  这个vim内置命令就是vimgrep,有两种基本的使用方式:

  :vim[grep][!] /{pattern}/[g][j] {file} 。。。

  :vim[grep][!] {pattern} {file} 。。。

  file部分支持通配符,*代表当前目录,**代表当前目录及其子目录(递归),比如*/*.c代表当前目录下的c源程序文件,**/*.c代表当前目录及其递归子目录下的所有源程序文件。file部分可以指定多次。

  以下命令查看匹配结果:

  :cn[ext] 下一个结果

  :cp[revious] 上一个结果

  :cw[indow] quickfix窗口,结果文件列表

  更详细的用法参见:help vimgrep 和下面的refs。

  vim 多文件替换

  实际上只要如下两个命令即可(假设要将当前目录下所有扩展名为.txt/.cpp的文件中的hate替换成love):

  :args *.txt *.cpp :argdo %s/hate/love/gc | update

  :args *.txt *.cpp

  :argdo %s/hate/love/gc | update

  完成,解释如下:

  :args *.txt *.cpp

  :args *.txt *.cpp

  这样写会扫描当前目录下的.txt 和 .cpp文件,并加入到参数列表。但是这样写只会稻苗当前目录,如果想要递归扫描所有下级目录的话,用

  :args **/*.txt

  :args **/*.txt

  如果只想扫描下一级目录(即不扫描当前目录)的话,用

  :args */*.txt

  :args */*.txt

  而

  :argdo %s/hate/love/gc | update

  :argdo %s/hate/love/gc | update

  是将参数列表中的所有文件的hate提换成love,并写入硬盘(如果没有|update,就不会写入,但相应的替换也会被中断)。

  最后强调一点,使用替换命令的时候,一定记得备份,因为替换是直接写入硬盘。

  上面就是Linux系统vim多文件查找和替换的方法介绍了,通过find,sed等命令能够实现多文件的相关处理,你也可使用vim内置的多文件查找命令。

时间: 2024-07-30 20:40:33

Linux使用vim进行多文件查找和替换的方法的相关文章

Linux命令-vim文本编辑器|文件查找

一.vim文本编辑器 vi      vim      emacs   gedit ---------------------------------------------------------------------------------------- [[email protected] Desktop]# whereis vi vi: /bin/vi /usr/share/man/man1p/vi.1p.gz/usr/share/man/man1/vi.1.gz [[email pr

<实训|第十一天>学习一下linux中的进程,文件查找,文件压缩与IO重定向

[[email protected]~]#序言 在今后的工作中,运维工程师每天的例行事务就是使用free -m,top,uptime,df -h...每天都要检查一下服务器,看看是否出现异常.那么今天我们就讲解一下关于运维工程师例行事务的知识!  开班第十一天: [[email protected]~]#今天的课程大纲 查看进程,中断进程,切换进程 内存与swap分区 linux中文件查找的基本方法 linux中是如何解压缩文件的 关于I/O重定向的知识点 远程scp配合管道 详细讲解: [[e

Linux常用命令二之文件查找命令

本文对Linux常用命令做一个总结,方便日后查阅. (1) which命令 我们经常在linux要查找某个文件,但不知道放在哪里了,可以使用下 面的一些命令来搜索: ? ? ? ?which??查看可执行文件的位置 ? ? ? ?whereis?查看文件的位置 ? ? ? ?locate???配合数据库查看文件位置 ? ? ? ?find???实际搜寻硬盘查询文件名称 which命令的作用是,在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一 个搜索结果.也就是说,使用which命

linux运维练习-vim编辑和文件查找(8月30)

1.总结文本编辑工具vim的使用方法:   光标跳转:       字符跳转:        h:向左移动一个字符        l:向右移动一个字符        h:向上移动一个字符        j:向下移动一个字符       在(hjkl)前加上数字,表示跳转几个字符  单词跳转:       w:后单词的词首       e:当前或者后一个单词的词尾       b:当前或者前一单词的词首       在(web)前加上数字,表示多次移动  行间移动:      #G:第#行的行首 

7.vim文本编辑及文件查找应用

7.1vim编辑器深入讲解 vim编辑器 文本编辑器: 文本:纯文本,ASCII text,Unicode 文本编辑器种类: 行编辑器:sed 全屏编辑器: nano,vi vi: visual Interface vim: VI IMproved vim: 模式化的编辑器 基本模式: 编辑模式,命令模式 输入模式 末行模式: 内置的命令行接口 打开文件: # vim [options][file...] +#:打开文件,直接让光标处于第#行的行首 +PATTERN:打开文件后,直接让光标处于被

linux小结之一:常见文件查找方法

linux文件查找主要是locate.find. locate locate主要查找速度快,实时,但需要依赖系统文件数据库,而这个文件数据库需要手动生成:updatedb. find用法 实时,精确,有众多查找标准,它遍历指定目录的所有文件完成查找,速度慢. 语法: find  查找路径  查找标准  查到后处理command 查找路径:默认为当前目录 查找标准:默认为指定路径下的所有文件 处理动作:默认为显示 匹配标准: -name "filename":对文件名进行精确匹配 文件名

Linux基础入门--find(文件查找)

文件查找:在文件系统上查找符合条件的文件,条件是自己给出 Linux系统上实现工具:locate,find locate: 依赖于实现构建好的索引库,系统自动实现,一旦文件发生变化需要一定的周期时间更新.也可以手动更新数据.在索引构建过程中需要遍历整个文件系统,极消耗资源. 工作特点: 1.查询速度快 2.模糊查找 3.非实时查找 locate不能实时查找因此就到此为止 ============================================================ fi

【Linux】 find指令(文件查找)

每一种操作系统都有成千上万的文件组成,对于linux这样"一切皆文件"的操作系统来说更不例外,大家应该都能很轻松使用windows下的文件查找功能,但是对linux这一功能可能并不是很熟悉,其实想玩linux的你更要牢牢掌握这个命令,因为linux不像windows那样有固定的文件名后缀,并且因为linux阵营下百家争鸣的特性,一个相同的文件在不同的发行版,可能会有不同,所以如果能牢牢掌握find命令的使用,在摸索linux的道路上将会顺利很多,同时会发现linux下文件查找功能其实很

linux下find和locate文件查找命令详解

文件查找命令: locate命令特点 1.非实时,模糊匹配,查找是根据全系统文件数据库进行的: 2.updatedb, 手动更新生成文件数据库,默认第天凌晨4点02分更新数据库 3.速度快 find命令特点: 1.实时 2.精确 3.支持众多查找标准 4.搜索指定目录中的所有文件完成查找,但速度慢: 格式: find 查找路径 匹配标准 查找到以后的处理运作 查找路径:默认为当前目录 匹配标准:默认为指定路径下的所有文件 处理运作:默认为显示 匹配标准: -name '文件名':对文件名作精确匹