当前位置:  技术问答>linux和unix

如何使用vim在多个文件中进行字符串查找与替换?

    来源: 互联网  发布时间:2016-07-30

    本文导语:  使用vim,需要在某个目录下搜索到包含“字符串A”的文件,并将这些文件中的“字符串B”替换成“字符串C”。 例如:把目录中包含字符串"AAA"的所有文件都查找出来,然后把文件中的另一个字符串"BBB"替换为"CCC". 注...

使用vim,需要在某个目录下搜索到包含“字符串A”的文件,并将这些文件中的“字符串B”替换成“字符串C”。
例如:把目录中包含字符串"AAA"的所有文件都查找出来,然后把文件中的另一个字符串"BBB"替换为"CCC".
注:保证“AAA”与“BBB”字符串会同时在一个文件中存在。

请问如何使用Vim的命令达到上述目的?

|
提醒楼主: 动手之前最好先备份。
5楼的命令我自己试过,应该可以,但是还是小心一点好。

|
sed -i 's/BBB/CCC/g' `grep -l AAA`

列出所有包含AAA的文件:   grep -l AAA
针对一个文件作替换的命令:   sed -i 's/BBB/CCC/g' filename
两个结合在一起就是批量替换了。

's/BBB/CCC/g'   两个单引号,用双引号好像也行。
`grep -l AAA`   这两个不是单引号,而是键盘上和~在一起的那个键,在1键的左边。作用是把grep命令的输出放在命令行的这个位置。

|
为啥一定要用  vim 去做呢?
用 find + grep + sed 去做很容易阿。

|
vi中只能进行文本内的替换,例如:
:%s/AAA/BBB/g
要想在文件范围内进行替换,方法很多,
awk,sed都可以,shell也行,具体的例子就不写了,很easy的

|
   首先用命令: find / -name AAA  或者  ls -l / | grep AAA 找出含AAA的文件!

   然后通过vim编辑器对查找出的文件进行编辑,再来进行替换:%s/BBB/CCC/g(在整个文件进行替换)!!

   这种比较麻烦,但比较容易理解!!

|
vim是可以做到的,用args载入要修改的文件,用argdo做批量修改.

|
sed -i 's/BBB/CCC/g' `grep -l AAA`

|
如果 非要这样的话可以在vim里面用:shell

|
vim适于处理字符的东西。。怎么lz用它处理目录啊?

|

顶起。

|
vim 是可以做的
: h args

|
好多技巧啊,学习了

    
 
 

您可能感兴趣的文章:

  • Python不使用print而直接输出二进制字符串
  • 在ACC变成中要使用发ftp传送文件,但文件名不确定,请问怎么样在程序的FTP中使用字符串变量???
  • php使用strip_tags从字符串中去除html标记
  • 怎样在使用curses字符串输出函数或字符输出函数时,隐藏光标
  • 如何用sha1sum获取一个字符串使用sha-1加密后的16进制字符串?
  • 使用java如何分析系统不能识别的字符串?
  • 关于使用shell在文件中查找一段字符串的问题
  • 使用shell在文本文件中进行字符串搜索问题?shell高手请进,分不够可以再加
  • 使用sh脚本如何替换指定目录下所有文件中的指定字符串
  • Oracle中SQL语句连接字符串的符号使用介绍
  • c# split分隔字符串使用方法
  • 如何使用shell命令取到本机ip,注意只有本机ip的字符串 ,比如“xxx.xxx.xxx.xxx”
  • oracle使用instr或like方法判断是否包含字符串
  • 使用正则表达式匹配[***]样式的字符串
  • 浅析python 内置字符串处理函数的使用方法
  • c#字符串编码编码(encoding)使用方法示例
  • 我使用jdbc-odbc桥,拼出sql字符串,为什么总是说:括号内的串没有正常结束?
  • 使用T-SQL的Split拆分字符串的方法
  • c#使用htmlagilitypack解析html格式字符串
  • C#中使用Split方法拆分字符串实例
  • php使用正则表达式提取字符串中尖括号、小括号、中括号、大括号中的字符串
  • Docker官方镜像将会使用Alpine Linux替换Ubuntu
  • MYSQL 批量替换之replace语法的使用详解
  • 请问:在HP-UX下如何替换正在使用的可执行文件?
  • 关于vi使用文字替换的问题
  • 使用正则表达式替换表情符号核心代码
  • getaddrinfo 中的参数不能使用常量替换?
  • SQL SERVER使用REPLACE将某一列字段中的某个值替换为其他的值
  • 求助:使用sh脚本,把文件1.txt中的A都替换成B
  • 如何使用shell脚本替换不确定文本信息?实例!
  • Discuz批量替换帖子内容的方法(使用SQL更新数据库)
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 如何处理客户机和服务器使用不同字符集(包括双字节字符)上传或下载文件时文件名的转换问题
  • sql server中使用Unicode字符时要注意的问题
  • 如何使Linux使用别的机器作为代理上网(字符界面下)
  • 使用secureCRT删除字符的问题
  • 为什么在KDE下使用控制台经常字符会乱掉??
  • 浏览器的使用 LINUX(UNIX)字符模式下
  • RedHat AS 4 不能使用这几个转义字符 c t n?
  • 自己编写一个简单的字符设备驱动程序以后,改怎么使用它?
  • 如何在java中获知操作系统正在使用的默认字符集?
  • 为什么无法进入“系统维护与使用区”?提示“文本内容中发现无效字符。”
  • 使用test如何识别变量为空字符串?
  • 在控制台(字符)界面下,如何显示彩色的图片(BMP),有现成的库可以使用吗?
  • 问题:在linux系统中,怎么使用shell脚本,在文件的第三行和第四行之间新增一行(插入一段字符,或者一个变量的值)?
  • MySQL 转义字符使用说明
  • linux内核怎么定义汇编全局变量及在c文件中使用这个变量?有关0。11下的字符回显
  • 请问在linux下的字符界面下如何使用优盘?需要安装驱动程序吗?
  • C#中使用强制类型实现字符串和ASCII码之间的转换
  • c#字符串使用正则表达式示例
  • 在使用JDK1.4的正则表达式功能时,发现如果被搜索的字符太多,例如一篇文章.就会报错
  • 解析在MYSQL语法中使用trim函数删除两侧字符
  • C++ I/O 成员 tellg():使用输入流读取流指针
  • 在测试memset函数的执行效率时,分为使用Cash和不使用Cash辆种方式,该如何控制是否使用缓存?
  • C++ I/O 成员 tellp():使用输出流读取流指针
  • 求ibm6000的中文使用手册 !从来没用过服务器,现在急需使用它,不知如何使用! 急!!!!!
  • Office 2010 Module模式下使用VBA Addressof
  • 请问:在使用oracle数据库作开发时,是使用pro*c作开发好些,还是使用库函数如oci等好一些啊?或者它们有什么区别或者优缺点啊?
  • 编程技术其它 iis7站长之家
  • 急求结果!!假设一个有两个元素的信号量集S,表示了一个磁带驱动器系统,其中进程1使用磁带机A,进程2同时使用磁带机A和B,进程3使用磁带机B。
  • tcmalloc内存泄露优化c++开源库下载,安装及使用介绍
  • c#中SAPI使用总结——SpVoice的使用方法
  • sharepoint 2010 使用STSNavigate函数实现文件下载举例


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3